??
练习1.17
这道题中有2个需要我们自己先写出来的函数double和halve,当然了,这都非常容易实现:
(define(double x)
(+ x x))
(define(halve x)
(/ x 2))
题目中要求我们设计一个类似于fast-expt的求乘积的过程,并且只用对数的步数。
(define(...
分类:
其他好文 时间:
2015-02-05 20:32:57
阅读次数:
96
练习1.16这道题题目特别长,说的无非就是要用一个不变量记录中间结果,然后写出对数步数内的通过迭代来计算幂的函数,当然了还要用到题目中括号内的那个关系。下面就直接上代码了:(define (fast-expt b n) (fast-expt-iter 1 b n))(define (fast-exp...
分类:
其他好文 时间:
2015-02-05 20:23:27
阅读次数:
157
??
(define(cube x) (* x x x))
(define(p x) (- (* 3 x) (* 4 (cube x))))
(define(sine angle)
(if (not (> (abs angle) 0.1))
angle
(p (sine (/ angle 3.0)))))
大家...
分类:
其他好文 时间:
2015-02-05 18:35:07
阅读次数:
215
练习1.11这种题目太像是数学题目了,不过拿到编程上又有一些的难度。我们先根据题目中的条件,写出类似于第25页最下面的变换规则。我们先列出如下内容:a-- f(n-1) f(2) f(3) f(4) f(5)b-- f(n-2) f(1) f(2) f(3) f(4)c—f(n-3) f(0) f(...
分类:
其他好文 时间:
2015-02-05 18:15:33
阅读次数:
240
练习1.15(define (cube x) (* x x x))(define (p x) (- (* 3 x) (* 4 (cube x))))(define (sine angle) (if (not (> (abs angle) 0.1)) angle (p (sine (/ angle 3...
分类:
其他好文 时间:
2015-02-05 17:57:49
阅读次数:
140
练习1.9以下是第一个加起两个正整数的方法,其中inc将参数加1,dec将参数减1。(define (+ a b) (if (= a 0) b (inc (+ (dec a) b))))用代换模型展示(+ 4 5)如下:(+ 4 5)(inc (+ 3 5))(inc (inc (+ 2 5)).....
分类:
其他好文 时间:
2015-02-05 17:48:48
阅读次数:
121
??
这种题目太像是数学题目了,不过拿到编程上又有一些的难度。我们先根据题目中的条件,写出类似于第25页最下面的变换规则。我们先列出如下内容:
a-- f(n-1) f(2)
f(3) f(4) f(5)
b-- f(n-2) f(1)
f(2) f(3) f(4)
c—f(n-3) f(0)
f(1) f(2) f(3)
于是继而得出下式:
...
分类:
其他好文 时间:
2015-02-05 16:26:09
阅读次数:
198
??
这道练习的翻译有误。原文是:Write a procedure that computes elements of Pascal’s triangle bymeans of a recursive process.正确的翻译应该是计算帕斯卡三角形的各个元素。
y :
0 1
1 1
1
2 1
2 1
3 1
...
分类:
其他好文 时间:
2015-02-05 16:24:31
阅读次数:
138
??
以下是第一个加起两个正整数的方法,其中inc将参数加1,dec将参数减1。
(define (+ a b)
(if(= a 0)
b
(inc (+ (dec a) b))))
用代换模型展示(+ 4 5)如下:
(+ 4 5)
(inc (+ 3 5))
(inc ...
分类:
其他好文 时间:
2015-02-05 13:36:18
阅读次数:
115
??
我们先将Ackermann函数写入Edwin中,当然了,再获取结果之前应该先自己用笔算算。结果如下:
(A 1 10)
;Value: 1024
(A 2 4)
;Value: 65536
(A 3 3)
;Value: 65536
其中65536也就是16的四次方。
接下来通过连续的n值来观察题目中随后给出的几个过程。和之前一样,直接代...
分类:
其他好文 时间:
2015-02-05 13:35:11
阅读次数:
112