scheme中的辛普森积分

本章主要内容在于将基础计算的过程抽象出来成为一个普遍流程,以此增加函数应用的普遍性,提高后续使用时的上限。
练习1.29 辛普森积分
辛普森积分的数学性比较强,重点在于抽象积分过程,对积分系数进行分类讨论。

点击查看代码
(define (even? x)( = (remainder x 2) 0))
(define (cube x)( * x x x))
(define (sum term a next b)(if ( > a b)0(+ (term a)(sum term (next a) next b))))
(define (simpsons f a b n)(define h ( / (- b a) n))(define (y k) (f (+ a (* k h))))(define (factor k)(cond ((or (= k 0) ( = k n)) 1) ((even? k) 2)(else 4)))(define (term k) (* (factor k)(y k)))(define (next k) (+ k 1))(* ( / h 3) (sum term next n))
)

1.30 将抽象中的递归过程改写为迭代过程,练手题。

点击查看代码
(define (sum term a next b)(define (iter a result)(if ( > a b)result(iter (next a) ( + (term a) result))))(iter a 0))

1.31 对pi值的乘法展开过程的抽象

点击查看代码
(define (even? x)(= (remainder x 2.0) 0))
(define (next x) (+ x 2))
(define (f a b k n)(cond ((> k n) 1.0)((even? k) (* (/ a b) ( f (next a) b (+ k 1) n)))(else (* (/ a b) ( f a (next b) (+ k 1) n)))))
(define (f 2 3 0 100))

同1.30 将乘法过程做一个迭代的改写

点击查看代码
(define (product term a next b)(define (iter a result))(if ( > a b)result(iter (next a) (* (term a) result)))(iter a 1))

1.32 引入combiner和null-value,将乘法和加法过程统一抽象为一个过程。

点击查看代码
(define (accmulate combiner null-value term a next b)(if (> a b)null-value(combiner (term a)(accumulate combiner null-value (next a) next b))))

1.33中的一个实例,通过accmulate的过程结合一定的筛选方式(如prime筛选素数)进行特定范围的计算。

点击查看代码
(define (prime? n)( = n (smallest-divisor n)))
(define (smallest-divisor n)( find-divisor n 2))
(define (find-divisor n test-divisor)(cond ((> (* test-divisor test-divisor) (* n n)) n)((divisor? test-divisor n) test-divisor)(else (find-divisor n (+ test-divisor 1)))))
(define (divisor? a b)( = (remainder b a) 0))
(define (ori a) a)
(define (next a) (+ a 1))
(define (filtered-accmulate prime? combine null-value term a next b)(cond ((> a b) null-value)((prime? a) (combine (term a)  (filtered-accmulate prime? combine null-value term (next a) next b)))(else (filtered-accmulate prime? combine null-value term (next a) next b))))
(define (prime-sum a b)(filtered-accmulate prime? + 0 ori a next b))

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/986063.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025最新成都精装房装修公司推荐!家装实力品牌榜单发布,品质服务双优打造理想家居

随着精装房成为城市购房主流,专业装修服务需求日益增长。本榜单基于企业规模、服务质量、行业口碑、工程品质四大维度,结合成都市建筑装饰协会数据及业主满意度调研,权威解析2025年成都五大精装房装修品牌综合实力,…

2025最新成都精装房装修公司推荐!蓉城家装实力品牌榜单发布,品质服务双优打造理想家居

随着人们对居住品质要求的不断提升,别墅装修市场迎来新的发展机遇。本榜单基于设计创新力、施工工艺、材料品质、服务体系四大维度,结合行业协会数据及业主口碑反馈,权威解析2025年成都五大别墅装修品牌综合实力,为…

sql文件无法设置打开方式为ssms19,重新安装也不行

解决 : 使用bat脚本清空sql扩展名的打开方式,然后重新安装。

图书馆管理系统项目冲刺博客 Day3

图书馆管理系统项目冲刺博客 Day3 一、站立式会议 照片: [插入Day2站立会议照片] 二、昨天已完成的工作 基础CSS框架和设计变量完成 基础工具函数模块实现 认证方案设计文档定稿 三、今天计划完成的工作 颜嘉盈: 实现…

2025年下半年套管工厂综合推荐榜单:行业专家权威评测

摘要 随着新能源汽车、新型储能等行业的快速发展,2025年下半年套管行业迎来新一轮增长机遇。本文基于行业数据和技术指标,对国内主流套管工厂进行综合评估,为采购商提供参考依据。以下排名结合产品质量、技术实力、…

2025年11月热缩套管生产厂家哪家好深度评测

摘要 随着2025年新能源和智能制造行业的快速发展,热缩套管作为关键绝缘材料需求激增。本文基于行业数据和用户反馈,深度评测2025年11月热缩套管生产厂家的TOP5排行,重点推荐口碑与技术领先的厂家,并提供客观的挑选…

EmotiVoice 易魔声下载安装教程攻略:免费离线文本转语音工具软件新手必备

很多人找文本转语音工具时, 其实 EmotiVoice 易魔声就能解决这些问题!下面用 “你可能想问的问题”+“ step 清单” 的形式,把下载、安装、高效使用的方法说清楚,跟着做就能上手。很多人找文本转语音工具时, 其实…

2025年下半年热缩套管供应商靠谱排行Top 5推荐榜单

摘要 2025年热缩套管行业持续增长,受益于新能源汽车、储能和工业自动化等领域的快速发展,市场需求旺盛。本文基于行业数据、技术实力和用户口碑,综合评选出2025年下半年热缩套管供应商Top 5,并为读者提供客观的推荐…

12/3

今天上了两节课,明天篮球考试

P4_准备西瓜语义分割数据集

P4_准备西瓜语义分割数据集4.1【C】下载西瓜语义分割数据集 【B站对话】 --语义分割:将图片中的每个像素分类到对应的类别 --大佬你好,遥感图像语义分割方向好做吗?有没有入门的学习路线。 --不建议做语义分割,建议…

蓝桥杯Python-语法基础-1

一、变量与数据类型:数据存储的“最小单元” 1. 变量:命名规则与本质 定义:通过 = 赋值创建,如 age = 20,变量名指向内存中的数据。 命名铁律:仅含字母、数字、下划线,不以数字开头;区分大小写(如 Age≠age)…

微信共享位置怎么修改虚拟位置

嗨,宝子们,大家好呀!今天想和大家分享一个超实用的微信小技巧——如何灵活修改共享实时位置! ???? 微信共享实时位置功能,作为现代社交和通讯工具中的一个便捷特性,广泛应用于日常生活、工作协作以及紧急情况…

图书馆管理系统项目冲刺博客 Day2

图书馆管理系统项目冲刺博客 Day2 一、站立式会议 会议照片: 二、昨天已完成的工作 项目初始化完成,仓库创建 编码规范和环境配置确定 项目技术栈选型确认(HTML/CSS/JavaScript本地存储) 三、今天计划完成的工作 …

Java 创建事务的方式

1、使用声明式事务 @Transactional注意,@Transactional 只回滚RuntimeException和Error,而Exception、IOException是不会回滚的。 所以为了所有异常都能正常回滚,一般会写为:@Transactional(rollbackFor = Excepti…

RL——METRA: Scalable Unsupervised RL with Metric-Aware Abstraction

RL——METRA: Scalable Unsupervised RL with Metric-Aware AbstractionRL——METRA: Scalable Unsupervised RL with Metric-Aware Abstraction 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/近期,阅读…

从“访答”出发,深入解析AI对话技术如何重塑信息获取方式

从“访答”出发,深入解析AI对话技术如何重塑信息获取方式 在信息爆炸的时代,我们每天都被海量的数据包围。如何高效、准确地获取所需信息,成为了现代人面临的一大挑战。传统的搜索引擎虽然强大,但往往需要我们不断…

P3_安装配置MMSegmentation+预训练语义分割推理预测

P3_安装配置MMSegmentation+预训练语义分割推理预测3.1使用终端安装 MMSegmentation 按照顺序逐行运行本代码,即可安装配置 MMCV、MMSegmentation环境 【推荐代码运行云GPU环境:GPU RTX 3060、CUDA v11.3】 1.创建 P…

2025住人集装箱房生产品牌排名如何?谁在颠覆未来居住?

正文 近年来,随着模块化建筑理念的普及和各类工程项目、应急保障及商业临时设施需求的增长,住人集装箱房(又称箱式房、模块化房屋)市场蓬勃发展。面对市场上众多品牌,如何甄别其综合实力并做出明智选择,成为许多…

R20-2025年国产活动板房选购指南:领军品牌深度解析

正文 在模块化建筑成为全球基建、应急保障与商业扩展重要支撑的今天,选择一家可靠的活动板房生产厂家,直接关系到项目成本、工期与人员安全。面对市场上众多的供应商,如何辨别其综合实力与技术底蕴?本文将基于2025…

langchain4j 学习系列(5)-RAG

继续我们的langchain4j之旅,今天来看看RAG如何实现,“RAG萌宠新手盆友们”建议先看看B站大佬的视频RAG 工作机制详解—哔哩哔哩_bilibili,核心步骤就是下面这3张图: 最简单的RAG hello-world1、分片/索引 这里emb…