読者です 読者をやめる 読者になる 読者になる

yy_taroのとりとめのない落書き

メインフレームの導入・設計・構築ができるぐらいの知識があったりする。

SICP始めました 5

SICP五日目

 

今日は問題1.22ではまったため進捗が芳しくない・・・。

いつも芳しい訳でなないですが

 

問題1.21

 これは、記載されているプログラムを書いて、実行するだけ

 199、1999、19999前の二つは素数で、最後の数値は7で割れる。

 意外に199、1999が素数だった。面白い

 

問題1.22

 この問題にはまりました。

 ミリ秒で時間を出しているはずなのですが、それなりに大きい数字しても0だったの

 で、どこか間違っているのでは?と思い。ソースをずっとにらめっこをしていました。

 間違っているのではなくPCの性能が良すぎて、かなり大きな数値にしないと目に見えた時間が出てこなかったという落ちでした。

search-for-primesはこんな感じなんだかあまりかっこ良くありませんが、結果は、√n倍になっていました。

 

(define (search-for-primes start end)
 (cond ( (< start end)
  (cond ( (odd? start) (timed-prime-test start ) ) )
  (search-for-primes (+ start 1) end) ) ) )

 

計算結果(一部抜粋)

100000000091 *** 23

1000000000039 *** 77

10倍すると約√10倍となっていました。

 

 

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

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