【SICP练习】144 练习3.82
生活随笔
收集整理的這篇文章主要介紹了
【SICP练习】144 练习3.82
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
練習(xí)3-82
原文
Exercise 3.82. Redo exercise 3.5 on Monte Carlo integration in terms of streams. The stream version of estimate-integral will not have an argument telling how many trials to perform. Instead, it will produce a stream of estimates based on successively more trials.
代碼
(define (random-in-range low high) (let ((range (- high low))) (+ low (* (random) range)))) (define (random-number-pairs low1 high1 low2 high2) (cons-stream (cons (random-in-range low1 high1) (random-in-range low2 high2)) (random-number-pairs low1 high1 low2 high2))) (define (monte-carlo experiment-stream passed failed) (define (next passed failed) (cons-stream (/ passed (+ passed failed)) (monte-carlo (stream-cdr experiment-stream) passed failed))) (if (stream-car experiment-stream) (next (+ passed 1) failed) (next passed (+ failed 1)))) (define (estimate-integral p x1 x2 y1 y2) (let ((area (* (- x2 x1) (- y2 y1))) (randoms (random-number-pairs x1 x2 y1 y2))) (scale-stream (monte-carlo (stream-map p randoms) 0 0) area))) (define (sum-of-square x y) (+ (* x x) (* y y))) (define f (lambda (x) (not (> (sum-of-square (- (car x) 1) (- (cdr x) 1)) 1)))) (define pi-stream (estimate-integral f 0 2 0 2))感謝您的訪問,希望對您有所幫助。 歡迎大家關(guān)注或收藏、評論或點(diǎn)贊。
為使本文得到斧正和提問,轉(zhuǎn)載請注明出處:
http://blog.csdn.net/nomasp
總結(jié)
以上是生活随笔為你收集整理的【SICP练习】144 练习3.82的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CentOS 7安装mysql-5.6.
- 下一篇: SQL优化(二) 快速计算Distinc