SICP 习题 1.43 是前面两道题的延续,习题要求我们定义一个过程(repeat f n) ,其中f是一个单参数过程,题目要求我们通过repeat过程将过程f调用n次,注意是嵌套调用n次,不是连续调用n次。就是说结果应该是(f ( f ( … (f x) …))),而不是(begin (f x) (f x) (f x) … (f x))。题目还提醒我们使用习题1.42所定义的compose方法...
分类:
其他好文 时间:
2014-07-01 09:13:03
阅读次数:
201
【问题】
现有半美元、四分之一美元、10美分、5美分和1美分共5种硬币。若将1美元换成零钱,共有多少种不同方式?
【思路】
采用递归过程,假定我们所考虑的可用硬币类型种类排了某种顺序,于是就有下面的关系:
将总数为a的现金换成n中硬币的不同方式的数目等于
将现金数a换成除第一种硬币之外的所有其他硬币的不同方式数目,加上将现金数a-d换成所有种类的硬币的不同方式数目,其中的d是第一...
分类:
其他好文 时间:
2014-06-30 16:24:44
阅读次数:
322
【问题】
Define a procedure that takes three numbers as arguments and returns the sum of the squares of the two larger numbers.
定义一个过程,它以三个数为参数,返回其中较大的两个数的平方和。
【普通版】
(define (sum-square-largest x y ...
分类:
其他好文 时间:
2014-06-30 00:19:52
阅读次数:
270
Get start with "Lisp"
在《黑客与漫画》中,Paul graham提到什么才是最好的编程语言,Lisp和C被明显的提及,对可谓是Lisp是推崇备至。最近准备看SICP,于是学一下极具逼格的Lisp。
Getting a Lisp system at Home
On the Command Line
The basi...
分类:
其他好文 时间:
2014-06-27 10:41:20
阅读次数:
171
SICP 习题1.40 是一道题干很简单,但是看起来很复杂,本质其实比较简单的一道题。题目原题如下:请定义一个过程cubic, 它和newtons-method过程一起使用在下面形式的表达式里:(newtons-method (cubic a b c) 1)能逼进三次方程的零点。题干是很简单,就要求我们做个cubic过程,不过里面涉及newtons-method和三次方程的零点,如果只看题目的话真...
分类:
其他好文 时间:
2014-06-26 13:40:33
阅读次数:
186
SICP 习题1.41 看似和周边的题目没有关系,突然叫我们去定义一个叫double的过程,其实这道题的核心还是高阶函数。题目要求我们定义一个过程double,它以一个过程作为参数,这个作为参数的过程已经约定是一个单参数过程。double过程需要返回一个过程,所返回的过程将传入的过程应用两次。举例说,如果我们有个过程叫(扇耳光 贱人),调用这个过程会扇贱人一个耳光。那么(double 扇耳光)会返...
分类:
其他好文 时间:
2014-06-26 10:56:54
阅读次数:
209
SICP 习题1.39沿着习题1.37, 1.38的方向继续前行,要求我们根据德国数学家J.H.Lambert的公式定义tan-cf过程,用于计算正切函数的近似值。J.H.Lambert的公式如下:可以发现,这个和之前的无穷连分式是一样一样的,所不同的就是N是一个变量,不是固定数值。不过这个已经难不倒我们啦,可以从公式中发现,除了第一个N是x,其它的N都是x平方,D对应的数值是1,3,5,就是所有...
分类:
其他好文 时间:
2014-06-22 22:11:46
阅读次数:
239
SICP 习题1.38 紧跟着习题1.37的方向,要求我们用习题1.37中定义的cont-frac过程计算数学家欧拉大师在论文De Fractionibus Continuis 中提到的e-2的连分式。说实话,我不知道论文De Franctionibus Continuis讲的是什么,我甚至不知道论文的题目是什么意思。不过,这一切都不能阻止我这个数学盲去解答这道SICP习题。仔细阅读题目,我们可以...
分类:
其他好文 时间:
2014-06-22 21:55:22
阅读次数:
222
SICP 习题 1.37是一条很长的题目,主要讲的是无穷连分式。无穷连分式对我来说又是一个陌生的概念,于是又去百度了一番,发现无穷连分式也是一个很有意思的话题,涉及到无理数的表达。不过我建议大家还是暂时不要深入思考它的数学含义,一旦开始思考可能你又会跳进数学的深渊中不可自拔。无穷连分式的形式如下:就像书中说到的,作为无穷连分式的一个特殊例子,如果N和D都为1的话,f= 1/ φ, 这点可以结合我们...
分类:
其他好文 时间:
2014-06-03 03:33:04
阅读次数:
195
SICP 习题 1.35要求我们证明黄金切割率φ 是变换函数 x => 1+ 1/x
的不动点,然后利用这一事实通过过程fixed-point
计算出φ的值。首先是有关函数的不动点,这个概念须要理解清晰,后面好几道题都是环绕函数不动点展开的。作者在这里设计这些习题的原因也是希望读者能够关注函数不动点...
分类:
其他好文 时间:
2014-05-09 03:24:39
阅读次数:
343