1부터 n까지 숫자를 합하는 알고리즘에 대해 알아봅시다.

앞선 블로그에서는 1부터 10까지 숫자를 합하는 연산에 대한 알고리즘을 공부했습니다. 
먼저 알고리즘이라는 것은 문제를 푸는 방법이나 절차라고 말씀드렸습니다.

그렇다면 문제를 푸는 방법이나 절차는 한 가지 방법밖에 없을까요?

아니죠!!!!! 여러 가지 방법이 있겠죠.
그래서 1부터 10까지 또는 1부터 100까지 숫자를 합하는 방법도 또 있을 겁니다.

오늘은 천재 수학자 가우스가 어렸을 적 주변 사람들을 놀라게 한 방법을 통해 답을 구해 봅시다.

어린 가우스의 친구들은 우리가 지난 블로그 시간에 했던 것처럼 하나씩 더하고 하나씩 더하고... 를 반복했지만
어린 가우스는 다음 그림처럼 계산을 하고 답을 구했다고 합니다.

[가우스의 1부터 n번째까지 숫자의 합을 구하는 방식]

그러니까 n번째까지 101이 계속 50번 나오게 되니까 101 * 50 = 5050 이 되는 거죠. 기가 막히죠? ^^

그래서 이러한 내용을 바탕으로 다음과 같은 수식이 나오게 됩니다.

[1부터 n까지의 숫자의 합]

 

여기서 그럼 1부터 n까지의 숫자의 합을 구하는 알고리즘을 이용하여 파이썬으로 실행해 봅니다.

 

이렇게 실행하면 답은 

55
5050
500500 
이 됩니다.

결국 처음 시도한 하나하나 더하기를 하는 과정은 아래의 그림 같은 회수대로 더하기를 실행해야 하고

가우스의 방식대로 하자면 이렇게 n을 더하고 곱하고 나누면 간단하게 끝나게 되는 것이죠.

지금 보는 것처럼 어느 것이 더 효율적인지를 판단할 때 필요한 게 '알고리즘 분석'이며 프로그래밍에서 알고리즘 분석이 코딩의 효율을 높이는 좋은 방법이긴 한 것 같습니다.

다만, 수알못인 우리들이 이러한 내용을 모두 알긴 참... 어려운데... 뭐 .. 그래도한번 도~~~저언~~~~~ 해보실랍니까? 

http://www.keduit.com

 

우수 직업전문학교 한국정보교육원

국비지원,교육비 전액무료,우수훈련기관 한국정보교육원

www.keduit.com