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


【SICP练习】144 练习3.82相关推荐

  1. Python统计网站访问日志log中的IP信息,并排序。。

    Python统计网站访问日志log中的IP信息,并排序,打印排名靠前的IP及访问量.示例代码如下: #!/usr/bin/env pythonipdict = {}file = open(" ...

  2. numpy---(精简)

    numpy get started 导入numpy库, 并查看版本 import numpy as np np.__version__ '1.14.3' # pyplot显示画图, 数据分析与可视化 ...

  3. python plt pyplot matplotlib绘图时形状异常

    问题 如图,绘制的饼图和条形图叠加了,但是又不彻底. 原因 绘制过程中我前面绘制了很多图,添加了很多参数,共同作用下导致此问题的出现. 解决 使用plt.close()关掉绘图重新绘制即可. prin ...

  4. 使用canvas 绘制象棋棋盘

    先看效果图吧 O(∩_∩)O哈哈~ 代码在这里 <!dOCTYPE html> <html><head><meta charset="utf-8&q ...

  5. 回归方程带常数项matlab,请教regress命令求解不带常数项的多元线性回归方程的问题...

    首先不知道这样做的对不对,我在用[b,bint,r,rint,stats]=regress(y(:,i),x);的时候,之前没有x=[ones(33,1) x];,然后希望这样求出不带常数项的多元线性 ...

  6. 电磁场与电磁波实验 02 - | 电磁波波长测试实验

    一.实验目的 1 .学习了解电磁场电磁波的空间传播特性: 2 .通过对电磁场电磁波波长.波幅.波节.驻波的测量进一步认识和了解电磁场电磁波 3.了解电磁波的反射特性,利用迈克尔逊干涉现象和相干波原理测 ...

  7. 《Oracle PL/SQL实例精讲》学习笔记1——数据准备

    前言: 古人言,"业精于勤荒于嬉,行成于思毁于随".对于自己所从事的工作,若使理论知识和实践经验相辅相成,则可使自己的业务能力日益增长,事半功倍.反之,亦然. 前几天,接到一个需求 ...

  8. 坚决封掉pplive、qqlive、播霸网络电视、沸点网络电视、Gridmedia

    管它三七二十一,先封这个几个服务器 吞噬带宽资源的罪魁祸首 pplive.qqlive.播霸网络电视.沸点网络电视.Gridmedia pplive LIC0.SYNACAST.COM [202.11 ...

  9. 封锁ppstream,pplive,qqlive

    pplive.qqlive.播霸网络电视.沸点网络电视.Gridmedia pplive LIC0.SYNACAST.COM [202.114.1.165:8000] LIC1.SYNACAST.CO ...

最新文章

  1. 解决vista和win7在windows服务中交互桌面权限问题:穿透Session 0 隔离
  2. Altium Designer -- PCB设置板框
  3. CSS属性(根据继承性分为两类)
  4. 90后的你,有什么赚钱方式?
  5. python sorted list 包含元组 字典 的多列排序
  6. Android 隐藏ImageView
  7. matlab练习程序(生成加密p文件)
  8. QT 对话框不在任务栏显示
  9. 教你用GoldWave进行基础的混音准备
  10. Cozmo和Vector即将满血复活卷土重来(Digital Dream Labs收购Anki)
  11. NPDP第七章:产品生命周期管理
  12. Android 详解第三方介质交互之NFC,并且实现读你的交通卡,酒店房卡,学生证!
  13. css强制换行和超出隐藏实现(单行和多行)
  14. [转]计算机视觉入门
  15. 数据库定义语言(DDL)
  16. IEEE论文投稿模板及分类简介
  17. Unity3D显示Kinect线条图
  18. 利用定时器1实现流水灯
  19. MacBook随笔之eclipse常用快捷键速学
  20. SOLIDWORKS Simulation带接触的装配体分析方法

热门文章

  1. 坚果云下载的文件夹在哪_坚果云文件夹在哪?如何直接访问坚果云文件夹?
  2. 图像“位操作”有什么用?
  3. 【AI不惑境】模型剪枝技术原理及其发展现状和展望
  4. CListCtrl的使用完全指南
  5. 陕西“高山农业”-农业大健康·太白县:谋定小而美小而精
  6. Python学习教程(Python学习路线):Day08-面向对象编程基础
  7. 痴迷物理,无法自拔——3.24
  8. BZOJ3233【AHOI2013】找硬币
  9. 数据结构——树、森林和二叉树之间的转换
  10. Java开发知识之Java面相对象