【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


目录
相关文章
|
6月前
|
SQL 缓存 Java
深入拆解 MyBatis:Mapper 动态代理、一级与二级缓存的底层实现与实战
本文深入解析MyBatis三大核心机制:1)Mapper接口通过动态代理实现SQL执行,核心类包括MapperProxy和MapperMethod;2)一级缓存是SqlSession级别的内存缓存,默认开启且基于HashMap实现;3)二级缓存是Mapper级别的可共享缓存,需手动开启且要求实体类实现Serializable。通过代码示例详细演示了缓存的生效条件和失效场景,并对比了一二级缓存的关键差异,帮助开发者深入理解MyBatis底层原理,在实际开发中合理运用缓存机制。
375 1
|
3月前
|
弹性计算 应用服务中间件 nginx
ONLYOFFICE Docker 部署教程:阿里云 ECS 搭建在线文档服务器
本文基于 Ubuntu 24.04 实测,详解 ONLYOFFICE Document Server 9.4.0.1 社区版的 Docker 部署:从镜像拉取、容器启动、example 测试页启用,到 Nginx 反代 + sub_filter 解决白屏与 400 错误,覆盖环境要求、排错要点及生产建议,助你快速验证在线编辑能力。
971 0
|
2月前
|
运维 安全 Java
为什么不建议从零开发商城?集体放弃自研,转向开源二开的核心原因
电商技术选型核心在于规避隐性成本:自研商城看似自由,实则长期维护、迭代、安全投入巨大;成熟开源系统可省60%无效开发。本文对比VortMall(高并发多业态)、TigShop(全开源Java/低二开成本)、Jinor(PHP轻量快启)等5大主流方案,聚焦架构弹性、源码透明、生态持续与场景匹配,助企业精准降本增效。
267 0
为什么不建议从零开发商城?集体放弃自研,转向开源二开的核心原因
|
3月前
|
人工智能 文字识别 JavaScript
AI 写代码越来越快,为什么 Code Review 反而更慢了?
Molio团队实践Open Code Review(OCR):通过深度定制rule.json(禁用规范类检查、强化语义问题引导)、关闭系统规则合并、精准上下文补全与事实核查,将AI代码评审从30条低价值噪音压缩至12条高价值语义缺陷,真正释放LLM在race condition、路径穿越等深层问题上的发现能力。
245 1
|
3月前
|
BI 双11 C++
元气森林 x Quick BI:多波峰运营助力品牌向百亿目标迈进
元气森林借助数据银行精准定位气泡水、茶饮等四大新品赛道,制定差异化营销策略,通过618、双11等多峰节奏实现新品全面打爆、品牌资产提升与年轻人群增长。Quick BI支持对话式分析,助您高效决策!
|
8月前
|
SQL 人工智能 分布式计算
轻松体验MaxCompute SQL AI:用SQL调用大模型
本报告通过三步实践演示如何用SQL调用大模型:领取MaxCompute资源、创建项目与测试表、使用AI_TEXT_COMPLETE函数实现文本摘要和情感分析。全程无需复杂代码,仅用标准SQL即可在数据环境中直接调用AI能力,显著降低应用门槛,提升分析效率,验证了SQL+AI融合处理文本的可行性。
268 8
|
8月前
火语言RPA:滑块验证码自动化处理案例
本案例基于火语言RPA实现当当网滑块验证码自动登录,涵盖浏览器打开、页面访问、账号输入、滑块触发、云码识别、轨迹模拟及拖动提交等全流程自动化操作,提升效率,减少人工干预。
566 0
|
9月前
|
弹性计算 负载均衡 网络协议
。全球加速GA实战:为出海游戏业务降低延迟的架构方案
阿里云全球加速(GA)为出海游戏提供低延迟、高稳定网络方案,通过智能路由与全球70+地区边缘节点,优化TCP/UDP协议传输,解决跨境延迟高、公网不稳定难题。分层架构支持四层加速、智能调度与混合云部署,结合CDN与游戏盾,实现全球玩家流畅对战,助力打造无国界沉浸式体验。(239字)
|
自然语言处理 JavaScript 前端开发
Qwen开源多语言基准数据集P-MMEval
Qwen开源多语言基准数据集P-MMEval
|
SQL 分布式计算 数据处理
奇思妙想的SQL|兼顾性能的数据倾斜处理新姿势
文章分享了在支付宝支付数据链路改造升级过程中,针对数据倾斜的优化实践新方法,在解决数据倾斜问题的同时,还能兼顾更优的计算性能!