더북(TheBook)

응용 조건과 루프를 이용해 프로그래밍할 수 있으면 컴퓨터로 할 수 있는 무한한 가능성이 열린다. 이제부터 다양한 예제를 살펴보며 어떠한 가능성이 있는지 알아보자. 이 예제들은 모두 1.2절에서 알아본 데이터 타입 문제와 관련이 있지만, 여기에서 사용한 메커니즘은 어떠한 컴퓨팅 분야에도 응용할 수 있다. 이 프로그램들은 신중히 작성되었으며, 이 프로그램들을 공부하고 이해하면 루프를 이용한 멋진 프로그램을 여러분도 직접 작성할 수 있게 된다.

여기에서 살펴볼 예제들은 숫자 계산과 관련되어 있다. 지난 수 세기 동안 수학자와 과학자가 고민하던 문제와 관련된 예제도 몇 개 있다. 컴퓨터가 세상에 나온 지 50여 년 밖에 안 되었지만, 우리가 사용하는 많은 컴퓨팅 기법들은 고대부터 내려온 전통적인 수학에 기반하고 있다.

유한 합 powersoftwo.py 프로그램에 사용된 계산 패러다임은 여러분도 앞으로 종종 사용하게 될 것이다. 이 프로그램은 루프 제어를 위한 인덱스 변수와 계산 결과를 누적시킬 변수, 총 두 개의 변수를 사용한다. [프로그램 1.3.5](harmonic.py)는 이와 동일한 패러다임을 이용해 유한 합(finite sum) Hn = 1 + 1/2 + 1/3 + ... + 1/n을 구한다. 조화급수(harmonic number)라고 알려진 이 숫자들은 이산 수학에서 종종 볼 수 있다. 조화급수는 이산 수학에서의 로그라고 할 수 있으며, y = 1/x 곡선 아래의 면적에 수렴한다. [프로그램 1.3.5]은 다른 합계 계산의 기본 틀로 사용할 수 있다(연습문제 1.3.16 참조).

▲ 그림 1.3.7 조화급수 그래프

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.