【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
【SICP练习】144 练习3.82相关推荐
- Python统计网站访问日志log中的IP信息,并排序。。
Python统计网站访问日志log中的IP信息,并排序,打印排名靠前的IP及访问量.示例代码如下: #!/usr/bin/env pythonipdict = {}file = open(" ...
- numpy---(精简)
numpy get started 导入numpy库, 并查看版本 import numpy as np np.__version__ '1.14.3' # pyplot显示画图, 数据分析与可视化 ...
- python plt pyplot matplotlib绘图时形状异常
问题 如图,绘制的饼图和条形图叠加了,但是又不彻底. 原因 绘制过程中我前面绘制了很多图,添加了很多参数,共同作用下导致此问题的出现. 解决 使用plt.close()关掉绘图重新绘制即可. prin ...
- 使用canvas 绘制象棋棋盘
先看效果图吧 O(∩_∩)O哈哈~ 代码在这里 <!dOCTYPE html> <html><head><meta charset="utf-8&q ...
- 回归方程带常数项matlab,请教regress命令求解不带常数项的多元线性回归方程的问题...
首先不知道这样做的对不对,我在用[b,bint,r,rint,stats]=regress(y(:,i),x);的时候,之前没有x=[ones(33,1) x];,然后希望这样求出不带常数项的多元线性 ...
- 电磁场与电磁波实验 02 - | 电磁波波长测试实验
一.实验目的 1 .学习了解电磁场电磁波的空间传播特性: 2 .通过对电磁场电磁波波长.波幅.波节.驻波的测量进一步认识和了解电磁场电磁波 3.了解电磁波的反射特性,利用迈克尔逊干涉现象和相干波原理测 ...
- 《Oracle PL/SQL实例精讲》学习笔记1——数据准备
前言: 古人言,"业精于勤荒于嬉,行成于思毁于随".对于自己所从事的工作,若使理论知识和实践经验相辅相成,则可使自己的业务能力日益增长,事半功倍.反之,亦然. 前几天,接到一个需求 ...
- 坚决封掉pplive、qqlive、播霸网络电视、沸点网络电视、Gridmedia
管它三七二十一,先封这个几个服务器 吞噬带宽资源的罪魁祸首 pplive.qqlive.播霸网络电视.沸点网络电视.Gridmedia pplive LIC0.SYNACAST.COM [202.11 ...
- 封锁ppstream,pplive,qqlive
pplive.qqlive.播霸网络电视.沸点网络电视.Gridmedia pplive LIC0.SYNACAST.COM [202.114.1.165:8000] LIC1.SYNACAST.CO ...
最新文章
- 解决vista和win7在windows服务中交互桌面权限问题:穿透Session 0 隔离
- Altium Designer -- PCB设置板框
- CSS属性(根据继承性分为两类)
- 90后的你,有什么赚钱方式?
- python sorted list 包含元组 字典 的多列排序
- Android 隐藏ImageView
- matlab练习程序(生成加密p文件)
- QT 对话框不在任务栏显示
- 教你用GoldWave进行基础的混音准备
- Cozmo和Vector即将满血复活卷土重来(Digital Dream Labs收购Anki)
- NPDP第七章:产品生命周期管理
- Android 详解第三方介质交互之NFC,并且实现读你的交通卡,酒店房卡,学生证!
- css强制换行和超出隐藏实现(单行和多行)
- [转]计算机视觉入门
- 数据库定义语言(DDL)
- IEEE论文投稿模板及分类简介
- Unity3D显示Kinect线条图
- 利用定时器1实现流水灯
- MacBook随笔之eclipse常用快捷键速学
- SOLIDWORKS Simulation带接触的装配体分析方法