검색결과 리스트
파이썬에 해당되는 글 4건
- 2021.08.26 1부터 n까지의 곱을 구하는 알고리즘 이해하기 (팩토리얼 알고리즘)
- 2021.08.24 1부터 n까지 숫자를 합하는 알고리즘 알아보자!
- 2021.08.13 1부터 10까지의 합을 구하는 알고리즘!
- 2021.08.12 알고리즘이 뭘까?
글
오늘은 수학시간에 배웠던 팩토리얼 관련 알고리즘을 이해해 보려고 합니다.
1부터 n까지의 연속한 숫자들의 곱을 우리는 팩토리얼 이라고 부릅니다.
먼저 팩토리얼을 한번 알아볼까요 ?
팩토리얼은 숫자뒤에 !(느낌표)를 붙여서 쓰고 또는 "계승"이라고도 불립니다.
단, 0!은 1이라고 확정입니다^^
1! = 1
3! = 1*2*3 = 6
5! = 1*2*3*4*5 = 120
n! = 1*2*3* ... * (n-1) * n
자, 감이 오시나요? 이전에 했었던 n까지의 합을 구하는 알고리즘을 조금 변형하면 손쉽게 만들수 있습니다.
코드를 입력하면 각각 1과 6과 120이 결괏값이 나옵니다.
3! 에 대한 것을 풀이를 해볼까요 ?
def fact(n) --> fact 라는 함수를 정의하고
곱을 한 값을 저장할 f를 미리 선언해 둡니다.
위의 판서처럼 range 는 () 괄호안의 구간을 반복하게 되는데 (a,b)인 경우 a번째부터 b-1번째까지 반복을 하게되죠.
여기서는 팩토리얼을 구해야 하니 3!은 3까지 반복해야 하니까 n+1번째라고 입력 합니다.
이후 곱셈에 대한 공식을 넣어주고 f를 재설정하는 공식 [ f = f * i]를 입력하여 팩토리얼 숫자만큼 반복하도록 합니다.
맨 마지막에 return은 for 함수를 통해 반복 계산한 결괏값을 밖으로 배출하란 뜻입니다.
그렇지않으면 그냥 값을 for가 품고 있기 때문에 우리는 볼수가 없게 되는거죠.
return을 통해 외부 배출이 되면 우린print 함수를 통해 화면에 찍어낼 수 있습니다.
좀 이해가 가나요 ^^
우수 직업전문학교 한국정보교육원
국비지원,교육비 전액무료,우수훈련기관 한국정보교육원
www.keduit.com
'알고리즘 이야기 with python' 카테고리의 다른 글
1부터 n까지 숫자를 합하는 알고리즘 알아보자! (0) | 2021.08.24 |
---|---|
1부터 10까지의 합을 구하는 알고리즘! (0) | 2021.08.13 |
알고리즘이 뭘까? (0) | 2021.08.12 |
설정
트랙백
댓글
글
1부터 n까지 숫자를 합하는 알고리즘에 대해 알아봅시다.
앞선 블로그에서는 1부터 10까지 숫자를 합하는 연산에 대한 알고리즘을 공부했습니다.
먼저 알고리즘이라는 것은 문제를 푸는 방법이나 절차라고 말씀드렸습니다.
그렇다면 문제를 푸는 방법이나 절차는 한 가지 방법밖에 없을까요?
아니죠!!!!! 여러 가지 방법이 있겠죠.
그래서 1부터 10까지 또는 1부터 100까지 숫자를 합하는 방법도 또 있을 겁니다.
오늘은 천재 수학자 가우스가 어렸을 적 주변 사람들을 놀라게 한 방법을 통해 답을 구해 봅시다.
어린 가우스의 친구들은 우리가 지난 블로그 시간에 했던 것처럼 하나씩 더하고 하나씩 더하고... 를 반복했지만
어린 가우스는 다음 그림처럼 계산을 하고 답을 구했다고 합니다.
그러니까 n번째까지 101이 계속 50번 나오게 되니까 101 * 50 = 5050 이 되는 거죠. 기가 막히죠? ^^
그래서 이러한 내용을 바탕으로 다음과 같은 수식이 나오게 됩니다.
여기서 그럼 1부터 n까지의 숫자의 합을 구하는 알고리즘을 이용하여 파이썬으로 실행해 봅니다.
이렇게 실행하면 답은
55
5050
500500
이 됩니다.
결국 처음 시도한 하나하나 더하기를 하는 과정은 아래의 그림 같은 회수대로 더하기를 실행해야 하고
가우스의 방식대로 하자면 이렇게 n을 더하고 곱하고 나누면 간단하게 끝나게 되는 것이죠.
지금 보는 것처럼 어느 것이 더 효율적인지를 판단할 때 필요한 게 '알고리즘 분석'이며 프로그래밍에서 알고리즘 분석이 코딩의 효율을 높이는 좋은 방법이긴 한 것 같습니다.
다만, 수알못인 우리들이 이러한 내용을 모두 알긴 참... 어려운데... 뭐 .. 그래도한번 도~~~저언~~~~~ 해보실랍니까?

우수 직업전문학교 한국정보교육원
국비지원,교육비 전액무료,우수훈련기관 한국정보교육원
www.keduit.com
'알고리즘 이야기 with python' 카테고리의 다른 글
1부터 n까지의 곱을 구하는 알고리즘 이해하기 (팩토리얼 알고리즘) (0) | 2021.08.26 |
---|---|
1부터 10까지의 합을 구하는 알고리즘! (0) | 2021.08.13 |
알고리즘이 뭘까? (0) | 2021.08.12 |
설정
트랙백
댓글
글
01. 1부터 n까지의 합을 구해보자
수학교과서나 다른 프로그래밍 언어에서 흔하게 나오는 문제가 아마도 1~10까지의 합을 구하는 문제였던걸로 생각이 납니다 ~ 이 내용에서 우리가 주목할 일은 문제와 입력값 그리고 출력값에 대해 먼저 종이에 적어보고 그내용을 알고리즘으로 구체화 해보는 겁니다.
문제: 1부터 n까지 연속하는 숫자의 합을 구하는 문제
입력 = 'n까지 해당하는 숫자' 이므로 입력 = n
출력 : n=10이면 55, n=100이면 5050 이 출력 값
02. 계산 과정을 말해보자.
1~10까지의 숫자를 순서대로 더하기 위해서는 다음과 같은 과정을 거쳐야 합니다.
1+2 를 계산하고 답이 3이 나오면 기억해 두었다가
다시 기억한 3에 3을 더해서 6을 기억하고
다시 기억한 6에 4를 더해서 10을 기억하고
다시 기억한 10에 5를 더해서 15를 기억하고
......
다시 기억한 45에 마지막 숫자인 10을 더하면 55가 되니까
답은 55
03. 알고리즘을 구체화 하자
- 더하기를 한 합의 값을 저장할 변수 s를 만들어 초기값 '0'을 입력한다.
- 변수 i를 만들어 1부터 n까지의 숫자를 1씩 계속 증가시켜서 반복한다.
- 반복된 기존의 합인 s에 증가된 i를 더하여 얻은 값을 다시 s에 저장한다.
- 반복이 완료되면 s에 저장된 값을 출력하도록 한다.
결과는
50
5050
이 나옵니다.
다음시간에는 같은 1~n까지의 합을 구하는 방법중에서 가우스의 방법을 이용해서 다시 만들어보겠습니다.
같은 내용이라도 수학적 공식을 통해서 더 빠르고 효율적으로 알고리즘을 만들면 더 큰 숫자를 더 빠른 시간에 결과값을 낼 수 있습니다 .
혹시 궁금하면 수학자 가우스를 찾아서 한번 미리 해보실랍니까? ㅎㅎㅎ
우수 직업전문학교 한국정보교육원
국비지원,교육비 전액무료,우수훈련기관 한국정보교육원
www.keduit.com
'알고리즘 이야기 with python' 카테고리의 다른 글
1부터 n까지의 곱을 구하는 알고리즘 이해하기 (팩토리얼 알고리즘) (0) | 2021.08.26 |
---|---|
1부터 n까지 숫자를 합하는 알고리즘 알아보자! (0) | 2021.08.24 |
알고리즘이 뭘까? (0) | 2021.08.12 |
설정
트랙백
댓글
글
01. 알고리즘이란?
보통 알고리즘이라는 단어는 다들 한번 이상씩은 들어 보았을것 같습니다.
어떤 프로세스나 절차 등의 의미로도 사용되는 알고리즘(algorithm)은 중세시대에 페르시아에 살았던 알 콰리즈미(Al-Khwarizmi) 이라는 수학학자의 이름에서 유래된 말입니다.
익히 알다시피 "알 콰리즘"이라는 수학자는 "이차방정식"의 풀이법과 "인수분해"를 개발한 수학자로도 유명합니다.
그래서 알 콰리즘이라는 이름에서 유래하여 계산하는 절차의 방식이라는 뜻으로 알고리즘이라는 단어로 지금 쓰이고 있죠 . 이런 유래 괜찮네요 ^^
그래서 알고리즘이란?
'문제를 푸는 방식이나 절차' 라는걸 명심하시면 됩니다.
그러니까 어떤 문제가 있으면 그 문제에 대해 '입력'된 정보를 통해 원하는 '답'을 만드는 일련의 과정을 구체적으로 적은 것을 알고리즘이라고 합니다.
예를 들어 절대값을 구하는 방식에 대한 알고리즘을 구한다면 먼저 '절대값'이 무엇인지를 알아야 할것 입니다.
"절대값" : 절대값은 0부터 그 숫자까지의 거리에 해당하는 값을 말합니다.
|a| 로 표시하고 a의 절대값을 표현하죠
a에 들어가는 실수가 +값 또는 0이면 a값이 절대값이 되고
a에 들어가는 실수가 -값 이면 (-)를 붙여서 표시하면 됩니다.
이렇게 알고리즘의 성능이나 특징을 분석하는것을 '알고리즘 분석'이라고 하는데 이건 쫌 어려운 수학적 내용이 많이 들어가야 하니 오늘은 알고리즘의 큰틀만 공부하는것으로 하겠습니다 ^^
그럼 1차로 현재 절대값 구하기를 해볼까요 ?
파이썬으로 구현해볼꺼니까 일단 파이썬이 깔려있어야 하고 아니면 비쥬얼 스튜디오 코드를 이용해서 파이썬을 확장모듈로 선택해서 깐 다음에 실행해보면 되겠습니다.
입력하고 디버깅하고 나면 아래와 같이 5와 3이 출력 됩니다.
만약 파이썬이나 비쥬얼 코드를 설치하기 어려운 환경이라면 웹에서 바로 확인할 수 있는 사이트도 있습니다.
예제를 입력하고 바로 실행 결과를 확인할 수 있는 사이트 이니 편한대로 알고리즘 공부를 할 수 있습니다.
구글 아이디로 회원가입하고 몇가지 선택적 물음에 답을 하면 됩니다. 관심있는 언어를 몇개 선택하고 그중 파이썬을 선택하면 아래와 같이 바로 파이썬을 실행할 수 있는 도구가 생깁니다. 이 도구를 통해서 해당하는 알고리즘을 학습해 봅니다.
회원가입이 되면 연습한 파일들도 저장이 가능하니까 회원가입 빠르게 하시고 공부하시는것도 좋을것 같습니다.
유튜브 강좌도 좋지만 한번에 후다닥 지나가서 도통 머리에 들어오지 않아서 결국 블로그에 다시 담는걸로 바꿨습니다.^^
좋은 경험이셨길~~ 알고리즘 이야기는 계속 쭈욱 갑니다.
우수 직업전문학교 한국정보교육원
국비지원,교육비 전액무료,우수훈련기관 한국정보교육원
www.keduit.com
'알고리즘 이야기 with python' 카테고리의 다른 글
1부터 n까지의 곱을 구하는 알고리즘 이해하기 (팩토리얼 알고리즘) (0) | 2021.08.26 |
---|---|
1부터 n까지 숫자를 합하는 알고리즘 알아보자! (0) | 2021.08.24 |
1부터 10까지의 합을 구하는 알고리즘! (0) | 2021.08.13 |