アフィリエイト広告を利用しています

広告

posted by fanblog

2017年04月05日

計算機プログラムの構造と解釈 問題1.8

計算機プログラムの構造と解釈(SICP)の問題1.8のNewton法を使って立方根を求める手続きの作成。


実装


基本的には先に作成していたsqrt手続きを立方根ように改良すればよさそうです。

立方根は英語で"Cube root"というので手続き名はcurtにしました。

新たに作成するのはcurtとcurt-iterとcurt-improveの三つです。good-enough?はsqrtのものを流用します。


(define (good-enough? guess next-guess) ;;許容値未満しか変化しなければ真
(let ((tolerance 0.0001))
(< (abs (- next-guess guess)) tolerance)))

;;;Newton法 p.14
(define (curt x) ;;立方根を求める
(curt-iter 1.0 x))

(define (curt-iter guess x)
(let ((next-guess (curt-improve guess x)))
(if (good-enough? guess next-guess)
next-guess
(curt-iter next-guess x))))

(define (curt-improve y x)
(/ (+ (/ x (square y))
(* 2 y))
3))




実行結果


そこそこ正確な立方根が求められています。

sicp1.8.png

計算機プログラムの構造と解釈 第2版

新品価格
¥4,968から
(2017/4/4 18:13時点)



この記事へのコメント
コメントを書く

お名前:

メールアドレス:


ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバックURL
https://fanblogs.jp/tb/6132072
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック
検索
最新記事
最新コメント
カテゴリーアーカイブ
タグクラウド
<< 2018年05月 >>
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    
プロフィール
さんの画像

情報系を専攻する学生。 しばらく使わなかったりした知識は忘れていくのでこのブログにまとめてみたり。
プロフィール
×

この広告は30日以上新しい記事の更新がないブログに表示されております。