2008년 07월 15일
SICP, 1.8
(define (cbrt x)
(cbrt-iter 1.0 x))
;Value: cbrt
(define (cbrt-iter guess x)
(define tolerance 0.00001)
(define (good-enough? guess)
(< (abs (- (* guess guess guess) x)) tolerance))
(define (improve guess)
(/ (+ (/ x (* guess guess)) (* 2 guess)) 3))
(if (good-enough? guess)
guess
(cbrt-iter (improve guess) x)))
;Value: cbrt-iter
;Value: cbrt-iter
(cbrt 9)
;Value: 2.0800838232385224
(define cube (lambda (x) (* x x x)))
;Value: cube
(cube 9)
;Value: 729
(cube 2)
;Value: 8
(cube (cbrt 9))
;Value: 9.00000000242235
----
한글판 SICP 책에 잘못나온 공식으로 어려운 문제이다. 세제곱근을 구하는 뉴튼메서드의 식은
이 아니라
이다.
(cbrt-iter 1.0 x))
;Value: cbrt
(define (cbrt-iter guess x)
(define tolerance 0.00001)
(define (good-enough? guess)
(< (abs (- (* guess guess guess) x)) tolerance))
(define (improve guess)
(/ (+ (/ x (* guess guess)) (* 2 guess)) 3))
(if (good-enough? guess)
guess
(cbrt-iter (improve guess) x)))
;Value: cbrt-iter
;Value: cbrt-iter
(cbrt 9)
;Value: 2.0800838232385224
(define cube (lambda (x) (* x x x)))
;Value: cube
(cube 9)
;Value: 729
(cube 2)
;Value: 8
(cube (cbrt 9))
;Value: 9.00000000242235
----
한글판 SICP 책에 잘못나온 공식으로 어려운 문제이다. 세제곱근을 구하는 뉴튼메서드의 식은
(/ (+ x (* y y) (* 2 y)) 3)
이 아니라
(/ (+ (/ x (* y y)) (* 2 y)) 3)
이다.
# by | 2008/07/15 19:30 | 트랙백 | 덧글(4)





☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
가는길이 다 도로라... 공기가 완전 쉣더빡.
안양천 도착하면 딱 좋은데, 그 때는 이미 운동 시간의 50%이상이 소요된 시간 -_-
안양천 딱 찍고 돌아오면 1시간 30분이다. 고민이야, 고민~
신정교 쪽으로 가는게 제일 편하고 좋다던데.
우리 백수니까 언제 한번 산책이나 갈까 ㅋㅋㅋ
아마 거기서 거기일텐데~ 난 왠만해선 하루에 한 번은 갈거야 아마.
Join me whenever you want!
한 1시간 뛰었더니 목 아파 죽어.
시영 아파트 고고!