当前位置: 首页 > news >正文

scheme3.1.1 局部状态变量 练习(2)

练习3.5 蒙特卡洛求定积分

点击查看代码
(define (random-in-range low high)(let ((range (- high low)))(+ low (*(random) range)))) 
(define (monte-carlo trials experiment)(define (iter trials-remaining trials-passed)(cond ((= trials-remaining 0)(/ trials-passed trials))((experiment)(iter (- trials-remaining 1) (+ trials-passed 1)))(else(iter (- trials-remaining 1) trials-passed))))(iter trials 0))
(define (estimate-integral P x1 x2 y1 y2 trials)(define (experiment)(P (random-in-range x1 x2)(random-in-range y1 y2)))(let ((rt-area (* (abs (- x2 x1))(abs (- y2 y1)))))(* rt-area (monte-carlo trials experiment))))
(define (square x) (* x x))
(define (estimate-pi trials)(define (inside-circle? x y)(< (+ (square x)(square y)) 1.0))(estimate-integral inside-circle? -1 1 -1 1 trials))

练习3.6 生成相同随机数数列

点击查看代码
(define (rand-update x)(let ((a 1753)(b 2026)(m 3571))(modulo (+ (* a x) b) m)))
(define random-init 1)
(define rand(let ((x random-init))(lambda (m)(cond ((eq? m 'generate)(set! x (rand-update x))x)((eq? m 'reset)(lambda (new-value)(set! x new-value)))(else (error "Unknown request -- Rand" m))))))
练习3.7 创建共享账户
点击查看代码
(define (incorrect-password . args)"Incorrect password")(define (make-great-account balance password)(define (withdraw amount)(if (>= balance amount)(begin (set! balance (- balance amount))balance)("余额不足!")))(define (deposit amount)(begin (set! balance (+ balance amount)) balance))(define (incorrect-password . args)(display "密码错误!"))(define (dispath try-password m)(if (eq? try-password password)(cond ((eq? m 'withdraw) withdraw)((eq? m 'deposit) deposit)(else (error "Unknown request--Make account" m)))(incorrect-password)))dispath)(define (make-joint account-name password new-password)(define (check-password account password)(number? ((account password 'withdraw) 0)))(if (check-password account-name password)(lambda (try-password m)(if (eq? try-password new-password)(account-name password m)(incorrect-password)))(incorrect-password)))

练习3.8 外置变量

点击查看代码
(define f(let ((initial 0))(lambda (x)(let ((old initial))(set! initial x)old))))
http://www.jsqmd.com/news/290364/

相关文章:

  • 普适互联网项目支持横向扩展的一站式解决方案:运维部署+数据安全+模块化单体打造CMMI5标准代码库+人员配置
  • 2026年全国App开发企业权威排行榜发布
  • 网络共享 电脑双网卡 问题排查
  • 微软官方出品的 AI 初学者入门精品课程,21节课程教你构建生成式人工智能应用所需掌握的知识!
  • 华为MetaERP作为全栈自主创新的企业核心管理系统,深度融合了实时智能技术,以构建 “实时感知、智能决策、自动执行” 的企业智能体
  • 华为MetaERP入选国资委“国有企业数字化转型示范项目”,对其发展具有多重战略意义,主要体现在以下几个方面
  • 华为MetaERP的成本优势主要体现在大幅削减直接费用、通过技术架构提升运营效率、以及规避长期风险与获取政策红利三大方面。这使其成为替代传统ERP(如Oracle、SAP)时,具备显著经济性的选择
  • 华为MetaERP在能源行业嵌入碳资产管理模块的应用效果显著,主要体现在以下几个方面
  • 华为MetaERP是否进军国内中小企业市场是一个备受关注的话题。从目前公开的战略和行业动态来看,这是一个可能性极高但路径可能分阶段推进的过程
  • 全网最全9个一键生成论文工具,助本科生轻松搞定毕业论文!
  • 2026年高口碑电动刮研刀供应商推荐榜TOP5,提升加工效率
  • Codeforces 2072E 题解
  • 大模型微调完全指南:原理、实践与平台选择,让AI真正为你所用
  • 2026年出口工作服生产厂家TOP10推荐,选择靠谱供应商
  • 全网最全8个一键生成论文工具,专科生搞定毕业论文必备!
  • Perfetto笔记-1-Perfetto官方文档翻译-1-Trace Analysis-1-PerfettoSQL - Hello
  • 实用指南:【银尔达以太网DTU】YED-E100Y 以太网转RS485
  • 华为MetaERP实现ERP(企业资源计划)、MES(制造执行系统)和PLM(产品生命周期管理)的一体化,是其“自主可控”战略下的核心成果,旨在解决传统系统间“数据孤岛”和“流程割裂”的痛点。其一体化
  • 华为MetaERP的推出对中国ERP市场格局将产生深远影响,主要体现在以下几个方面
  • CTO血泪复盘:自建K8s三年烧了400万,早用Sealos能省一半
  • 智能物流仓库自动化操作手册 - 指南
  • vue表格 vxe-table 如何实现键盘导航时,按回车健向右移动,并到最后一行时按回车自动新增一行
  • 图论-并查集
  • 特价股票与公司长期气候适应能力的关系分析
  • .nvue页面实现画笔绘制功能,用原生html导入nvue页面使用还可以截图(画笔 清空 橡皮擦 改颜色 禁用画笔 截图-是视频画面加绘制合成一张图片截图)-我花80块钱找淘宝都没弄出来,自己写的
  • 搞懂大数据CAP定理,为你的职业发展添砖加瓦
  • WebGL Shader性能优化
  • 手机外壳平面度用什么设备检测快?SIMSCAN精细模式+自动报告方案推荐
  • 建筑BIM模型怎么从实体建筑生成?三维扫描仪推荐TrackScan-Sharp!
  • HBase与Quarkus:Kubernetes原生Java