이 문제는 sum과 같은 방식으로 product도 만드는 문제입니다.

재귀 프로세스와 반복 프로세스 모두 만들고,

원주율 π를 구하는 공식 중 하나인 Wallis product를 적용시킵니다.

 

c10

product는 재귀 프로세스, product-iter은 반복 프로세스입니다.

1부터 10까지 제곱을 곱해보니 둘 다 바른 정답이 나왔습니다.

 

 

Wallis product의 경우 책에 적혀진 식으로는 그 뜻을 파악하기 힘들었습니다.

c11

(SICP 78)

그래서 두 개씩 묶어 곱셈을 하였습니다.

 

하지만 분자 분모를 전부 곱한 다음에 계산을 해서 그런지 많이 나가지 못했습니다.

나눗셈을 계속하면 시간이 오래 걸릴 듯싶어 그렇게 하였는데,

그보다 처리할 수 있는 숫자 크기의 한계가 문제였습니다.

새롭게 고치는 것보다는 점화식을 쓰기로 했습니다.

 

fc3d00a0a6346967ffc87e7d0a5ac049

(Wikipedia)

 

그리고 원주율과 값을 비교하였습니다.

원주율 π = 3.1415926535897932...이니

구한 값에서 0.0000000785089399 정도 차이납니다.

이 정도면 거의 근접하였네요.^^

 

 

참조

Structure and Interpretation of Computer Programs 2/E - Page 78

크리에이티브 커먼즈 라이센스
Creative Commons License

글에 잘못된 점, 다른 점, 부족한 점이 있다면 지적해주세요.
댓글, 트랙백, 메일 모두 고맙습니다.

트랙백 주소 :: http://nosyu.pe.kr/trackback/1266

댓글을 달아 주세요

[로그인][오픈아이디란?]