>已修复,
这不是一个庞大的数字,只是两个巨大数字的一小部分,所以我得到了一个误报 . 算法是正确的;现在修改最后一个输入参数,解释器将其检索为十进制逗号,并且看起来像它一直是的小数字 .
我正在从SICP做练习1.8,当我评估算法时,Scheme的解释器̵f̵̵r̵̵e̵̵e̵̵z̵̵e̵s̵会返回错误的答案 . 有人知道为什么吗?
牛顿立方根的方法基于如下事实:如果y是x的立方根的近似值,那么值(x /(y ^ 2)(2 * y))/ 3给出更好的近似 . 使用此公式实现类似于平方根过程的立方根过程 .
(define (cubert x)
(cubert-iter x x 1))
(define (cubert-iter x previous guess)
(if (good-enough previous guess)
guess
(cubert-iter x guess (improve x guess))))
(define (improve x guess)
(/ (+ (/ x
(square guess))
(* 2
guess))
3))
(define (good-enough previous guess)
(< (/ (max (square previous)
(square guess))
(min (square previous)
(square guess)))
tolerance))
(define tolerance 2)
(cubert 1000)̴f̴̴r̴̴e̴̴e̴̴z̴̴e̴s̴给出一个巨大的100位数字(cubert 27)返回类似于3049534534593845092305345它可能有一个评估顺序错误,但我看不到它