【SICP练习】39 练习1.44



练习1.44

相信如果大家认真做了前面的几道习题,这一题就比较简单了。smooth过程几乎可以直接写出:

(define smooth

(lambda (f)

(lambda (x)

(/ (+ (f (- x dx))

(f x)

(f (+ x dx)))

3))))

当然,在这之前应该先将dx关联一个数值,比如0.000001等等。至于利用smooth和练习1.43中的repeated来对给定的函数进行n次平滑处理,也是极为简单的。

((repeated (smooth square)2) 5)

;Value: 625.0000000033998

不对,这里有错。这里的2是用来重复两次(smooth square)操作的,是这一整个操作而不只是smooth,不信来测试一下。

((repeated (smooth square)3) 5)

;Value: 390625.0000042498

这里在smooth的同时也执行了3次square。正确的改法如下。

((repeated ((repeated smooth3) square) 2) 5)

这里的3才是经过了3次平滑处理,首先用一个repeated来执行3次smooth,传入的正是square。外面的2则是用来执行2次square,传入的则是5。

下面我们来将其写为一个过程,让其更加抽象。

(define smooth-repeated

(lambda (f n)

(lambda (x)

(((repeated smooth n) f) x))))

来测试一下咯。

((smooth-repeated square 10)5)

;Value: 25.000000000666663

其中的数字10就是smooth的次数。最近这几道题篇幅都比较长,也非常有意思。

时间: 2024-10-11 09:50:13

【SICP练习】39 练习1.44的相关文章

世界主要城市经纬度

城市英文名 城市中文名 所属国家 纬度 经度 Abidjan 阿比让 科特迪瓦 北纬:5°19' 东经:4°01' Abu Dhabi 阿布扎比 阿联酋 北纬:24°27' 东经:54°23' Abuja 阿布贾 尼日利亚 北纬:9°12' 东经:7°11' Acapulco 阿卡普尔科 墨西哥 北纬:16°51' 西经:99°56' Accra 阿克拉 加纳 北纬:5°33' 东经:0°15' Adak 艾达克岛 美国 北纬:51°52' 东经:176°39' Adamstown 亚当斯敦 英

【转】png文件格式

前言 我们都知道,在进行J2ME的手机应用程序开发的时候,在图片的使用上,我们可以使用PNG格式的图片(甚至于在有的手机上,我们只可以使用PNG 格式的图片),尽管使用图片可以为我们的应用程序增加不少亮点,然而,只支持PNG格式的图片却又限制了我们进一步发挥的可能性(其实,应该说是由于手机 平台上的处理能力有限). 在MIDP2中,或者某些厂商(如NOKIA)提供的API中,提供了drawPixels/getPixels的方法,这些方法进一步提高了开发者处理 图片的灵活性,然而,在MIDP2还未

【转】每天一个linux命令(47):iostat命令

原文网址:http://www.cnblogs.com/peida/archive/2012/12/28/2837345.html Linux系统中的 iostat是I/O statistics(输入/输出统计)的缩写,iostat工具将对系统的磁盘操作活动进行监视.它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况.同vmstat一样,iostat也有一个弱点,就是它不能对某个进程进行深入分析,仅对系统的整体情况进行分析.iostat属于sysstat软件包.可以用yum insta

oracle触发器、序列、任务计划练习一例

今天在闲暇时间练习了一下oracle任务计划,具体详情如下 1.创建表 TBL_TIME create table tbl_time( id number not null,    /*id号*/ vsecond varchar2(2),   /* 秒*/ vtime varchar2(10)    /*当前时间*/ ) 2.创建序列 seq_tbltime create sequence seq_tbltime start with 1 increment by 1 nomaxvalue no

Android中检测字符编码(GB2312,ASCII,UTF8,UNICODE,TOTAL——ENCODINGS)方法(一)

package com.android.filebrowser; import java.io.*; import java.net.*; public class FileEncodingDetect { static final int GB2312 = 0; static final int ASCII = 1; static final int UTF8 = 2; static final int UNICODE = 3; //static final int GBK = 4; //st

PNG文件结构分析 ---Png解析

PNG文件结构分析 ---Png解析 为了实现更高级的应用,我们必须充分挖掘PNG的潜力. PNG的文件结构 根据PNG文件的定义来说,其文件头位置总是由位固定的字节来描述的: 十进制数 137 80 78 71 13 10 26 10 十六进制数 89 50 4E 47 0D 0A 1A 0A 其中第一个字节0x89超出了ASCII字符的范围,这是为了避免某些软件将PNG文件当做文本文件来处理.文件中剩余的部分由3个以上的PNG的数据块(Chunk)按照特定的顺序组成,因此,一个标准的PNG文

必胜技巧7

┏┯┓┏┯┓┏┯┓┏┯┓ ┠技┨┠巧┨┠大┨┠全┨ ┗┷┛┗┷┛┗┷┛┗┷┛ [1]准确率 90%以上后一公式 后一开出的相对应号,如上期开581.取个位数 1=579 下期开 185中5  代验证 0 4067 1 579 2 168 3 279 4 138 5 0249 6 135 7 2468 8 357 9 468 [2]两个胆码算法已验证过正确率 92% 1.用开奖号后三位数*后三位数/25 比如:今天46期开了69970 就用970*970/25 37636 取前两位,下期双胆为37

第二十篇:类操作符重载的相关规定与具体实现示例

前言 有书这么说过,C++设计的最大目的在于允许程序员定义自己的类型,并使它们用起来跟内置类型一样容易和直观.就目前看来,要实现这一点,最核心的莫过于操作符的重载.科学的重载可以让类的使用最大程度地接近内置类型.本文将讨论类操作符重载涉及到的一些原则和具体做法. 实现类操作符重载的两种思路 1. 友元函数法: 将待重载操作符视作非成员函数( 它声明为操作数类型的友元函数 ) 应当采用这种机制重载的运算符有:IO操作符,算数操作符,关系操作符. 2. 成员函数法: 将待重载操作符视作特殊的成员函数

iTOP-4412开发板-嵌入式平台开机测试

iTOP-4412平台硬件的连接1.核心板和底板的连接 迅为iTOP-4412开发板采用工业级进口板对板连接器,拔插方便稳定可靠,如下图所示. 另外迅为独家提供两种封装的核心板,接口定义完全兼容,如下图所示. iTOP-4412开发平台,核心板和底板可分离.拆分核心板的时候,使用塑料的薄片在核心和底板任意一边轻轻撬动,听到清脆的响声,表明撬动的一边的连接器已经分离,接着依次分离其它三边. 安装核心板的时候,核心板和底板的箭头要指向同一方向,将核心板和底板对齐,然后按压核心板,听到四次清脆的响声,