在看 SICP 这本书,做到练习 1.8 的时候,Newton method 实现的代码如下:
(define (cubrt-iter guess x)
(if (good-enough? guess x)
guess
(cubrt-iter (improve guess x)
x)))
(define (improve guess x)
(third guess (/ x guess)))
(define (third x y)
(/ (+ (/ x (* y y))
(* 2 y))
3))
(define (good-enough? guess x)
(< (abs (- (cube guess) x)) 0.001))
(define (cube x) (* x x x))
(define (abs x)
(cond ((> x 0) x)
((= x 0) 0)
((< x 0) (- x)))
)
(define (cubrt x)
(cubrt-iter 1.0 x))
使用牛顿公式做开立方,但是不知道为什么执行的时候没有结果,大家帮我看下原因吧 :(
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.