【SICP练习】3 练习1.7
練習(xí)1.7
這道題回應(yīng)了第15頁所說的good-enough?并不是一個很好的檢測方法。
我們首先來按照題目要求用4組最大或最小的數(shù)來檢測原文中的good-enough?
(sqrt-iter 1.0 0.00000081)??????????????0.0009
;Value: 0.3125863108711088
(sqrt-iter 1.0 0.000000014)????????????0.00012
;Value: 0.3125015344984974
通過以上兩個例子相信已經(jīng)很明顯了,至于最大的數(shù)字我就不再測試了,因為我剛剛測試了一個十六位數(shù)的然后卡死了。
以下是我寫的改進(jìn)后的good-enough?
(define (good-enough? guess x)
????????(good-enough-1?guess (improve guess x)))
(define (good-enough-1? guess1 guess2)
????????(<(abs (/ (- guess2 guess1) guess1)) 0.00001))
我們依舊來通過測試說明沒問題,以下是測試結(jié)果。
(sqrt-iter 1.0 0.00000016)
;Value: 4.000016244484425e-4
(sqrt-iter 1.0 152399025)
;Value: 12345.000014803034
看得出來和結(jié)果已經(jīng)非常相似了。當(dāng)然,good-enough?肯定還有非常多的檢測方法。
版權(quán)聲明:本文為 NoMasp柯于旺 原創(chuàng)文章,如需轉(zhuǎn)載請聯(lián)系本人。
轉(zhuǎn)載于:https://www.cnblogs.com/NoMasp/p/4786227.html
總結(jié)
以上是生活随笔為你收集整理的【SICP练习】3 练习1.7的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基础算法之快速排序Quick Sort
- 下一篇: iOS开发ARC内存管理技术要点