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

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

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

SICP始めました 58

SICP五十八日目

問題3.8

 モンテカルロ積分と身構えていましたが、意外とわかりました。

 確率から値を導き出すというのは面白い考え方ですね。

( define ( p x y )
 ( <= ( + ( sqrt x ) ( sqrt y ) ) 1 ) )

( define ( estimate-integral p x1 y1 x2 y2 trials )
 ( * ( monte-carlo trials 
       ( lambda ( ) 
            ( p ( random-in-range x1 x2 ) ( random-in-range y1 y2 ) ) ) )
   ( * ( - x2 x1 ) ( - y2 y1 ) ) ) ) 

問題3.9

( define rand
 ( let ( ( x random-init ) )
  ( define generate
   ( set! x ( rand-update x ) )
   x )
  ( define ( reset value )
   ( set! x value ) x )
  ( define ( dispacth m )
   ( cond ( ( eq? m 'generate ) generate )
      ( ( eq? m 'reset ) reset )
      ( else ( error "Unknown repuest -- NEW-RAND" m ) ) ) )
 dispacth ) )


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

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