電腦程式的構造和解釋 練習題3 5

2021-10-23 08:18:41 字數 1398 閱讀 5291

矩形裡面可以剛好包裹乙個圓,直徑就是長或者寬短的那乙個,其實就是利用隨機數,在矩形裡面打點,概率就是圓形佔矩形面積的比率,然後通過面積計算出圓周率。

#lang racket

(define (square x)

(* x x)

)(define (monte-carlo trials experiment)

(define (iter trials-remaining trials-passed)

(cond (

(= trials-remaining 0)(

/ trials-passed trials))(

(experiment)

(iter (

- trials-remaining 1)(

+ trials-passed 1))

)(else

(iter (

- trials-remaining 1

) trials-passed)))

)(iter trials 0))

(define (p x y r)

(lambda (a b)

(<=(+

(square (

- a x)

)(square (

- b y)))

(square r)))

)(define (min a b)(if

(> a b) b a)

)(define (estimate-integral p x1 x2 y1 y2 trials)

(define r (min (/(

- x1 x2)2)

(/(- y1 y2)2)

))(define p?

(p (/(

+ x1 x2)2)

(/(+ y1 y2)

2) r)

)(define (test)

(p?(random-

in-range x1 x2)

(random-

in-range y1 y2)))

(/(*

(- x1 x2)

(- y1 y2)

(monte-carlo trials test)

)(square r)))

(define (random-

in-range low high)

(let

((range (

- high low)))

(+ low (random range)))

)(estimate-integral p 284

101000

)

執行結果,基本等於3.14

313/

250

電腦程式的構造和解釋 練習題1 44

平滑函式的公式為 f s x f x dx f x f x dx 3f s x f x dx f x f x dx 3 fs x f x dx f x f x d x 3他的幾何意義應該是將每個點的導數,變化率變小。說簡單點就是函式那塊曲線彎度比較大,加上這個函式就會減小他的彎度,直到他無限接近於一...

電腦程式的構造和解釋 練習題2 19

lang racket define no more?coin values null coin values define except first denomination coin values cdr coin values define first denomination coin va...

電腦程式的構造和解釋 練習題2 61

跟element of set?一樣的道理,當元素大於當時的set表時,就說明元素根本不在這個表裡,所以將元素直接插入到當時表的前面就可以了。最壞的情況還是把錶迴圈了一遍,最好的情況是只迴圈了一次,這樣平均的步數就是n 2次。define adjoin set x set cond null set...