zoukankan      html  css  js  c++  java
  • 【SICP练习】144 练习3.82

    练习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)) 
    



    感谢您的访问,希望对您有所帮助。 欢迎大家关注或收藏、评论或点赞。


    为使本文得到斧正和提问,转载请注明出处:
    http://blog.csdn.net/nomasp


    版权声明:本文为 NoMasp柯于旺 原创文章,如需转载请联系本人。

  • 相关阅读:
    [置顶] 新修改ADB,支持Android 4.2 系统 ,全部中文命令,手机屏幕截图等等
    归并排序
    Sciter/HTMLayout内存占用评测
    ASP.NET面试题总结
    uva 1356 Bridge ( 辛普森积分 )
    在没备份undo的情况下,undo丢失,重启数据库报ORA-01157错误
    以天徒龙记
    struts-config.xml 文件:
    struts.xml文件:
    web.xml文件:
  • 原文地址:https://www.cnblogs.com/NoMasp/p/4786056.html
Copyright © 2011-2022 走看看