上一页 1 ··· 7 8 9 10 11
摘要: 练习1.27这道题的场景是在注释47中,博主更关心的问题是:(第三行)撞上能欺骗费马检查的值的概率有多少,居然会比什么宇宙射线造成计算机出差。后者个人感觉是永远不会发生的,前者倒是还有可能发生。希望把前者的概率算出来的童鞋将过程列出来啦!言归正传,题目的意思就是要去验算注释47中的那几个Carm... 阅读全文
posted @ 2015-02-07 10:30 nomasp 阅读(95) 评论(0) 推荐(0) 编辑
摘要: 练习1.26这本书的练习好像很多都和某个人有关,不愧是一本经典著作,通过MIT大量的修修补补。下面我们进入正题吧,Louis的问题就在于计算了2次(expmod base (/ exp 2) m),如果是用的square,则只会计算一次。更何况在这多余的一次里,又是一个漫长的迭代。Lisp最吸引... 阅读全文
posted @ 2015-02-07 10:30 nomasp 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 练习1.25这道题由Alyssa的一个另一版本的expmod来引出,这个expmod的功能和之前的一样的。但是之前版本的expmod每次都有一个remainder来讲乘幂控制在一个不大的范围内,这样通过不断的迭代,将很大的数字分解开来得以加快计算速度。而题目中这一版本的expmod则只通过了一次... 阅读全文
posted @ 2015-02-07 10:29 nomasp 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 练习1.24我们先将书中已给出的代码写入Edwin中。(define (fermat-test n)(define (try-it a)(= (expmod a n n) a))(try-it (+ 1 (random (- n 1)))))(define (fast-prime? n time... 阅读全文
posted @ 2015-02-07 10:28 nomasp 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 练习1.23首先我们按照题目要求来写出相应的next函数,然后再修改find-divisor函数。(define (next x)(if(= x 2)3(+ n 2)))(define(find-divisor ntest-divisor)(cond((> (square test-diviso... 阅读全文
posted @ 2015-02-07 10:28 nomasp 阅读(81) 评论(0) 推荐(0) 编辑
摘要: 练习1.22这道题中需要判断素数的部分书中都已经列出来了,但要求是要找出多个素数,因此我们要有一个能够不断求素数的函数。在C等语言中我们可以通过一个for循环来轻易地求出来,在Scheme中我们完全可以用迭代来实现这一功能。另外因为是要的素数,因此完全不用考虑偶数了。于是我们先来写一个不断求奇数... 阅读全文
posted @ 2015-02-07 10:26 nomasp 阅读(110) 评论(0) 推荐(0) 编辑
摘要: 练习1.21这道题几乎没有难度,除非在把书中函数写入到Edwin中时输入错误。(smallest-divisor 199);Value: 199(smallest-divisor 1999);Value: 1999(smallest-divisor 19999);Value: 19999 ... 阅读全文
posted @ 2015-02-07 10:26 nomasp 阅读(83) 评论(0) 推荐(0) 编辑
摘要: 练习1.20 这道题要求我们分别在正则序和应用序的情况下来研究书中的gcd函数,并且还要算出实际执行remainder运算的次数。题目中先问的正则序后问的应用序,但由于应用序比较简单,我们先来看看应用序: (gcd 206 40) (gcd 40 6) (gcd 6 4) (gcd ... 阅读全文
posted @ 2015-02-06 12:22 nomasp 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 练习1.19题目中说道斐波那契数中将变换T的n次方应用于对偶(1,0)而产生出来,而现在将T看作T(pq)中p=0和q=1的特俗情况。因此对于对偶(a,b)来说,a—bq+a(p+q),b—bp+aq。而对于T(pq)的平方也就是(T(pq))^2,就像之前的a中往b乘以q和往a乘以(p+q),... 阅读全文
posted @ 2015-02-05 19:20 nomasp 阅读(227) 评论(0) 推荐(0) 编辑
摘要: 练习1.8和前两题一样,依旧是只能用对数步数。而且这个迭代过程要基于加、加倍和折半运算。这一个习题要用到前面的函数,因此最好的做法是,每次都将写好的代码保存起来。(load“Test1.18.scm”)这行代码可以用来加载代码。而保存可以用C-X,C-W。以下是该题的代码,这次我们写成块结构:(... 阅读全文
posted @ 2015-02-05 19:15 nomasp 阅读(108) 评论(0) 推荐(0) 编辑
摘要: 练习1.17这道题中有2个需要我们自己先写出来的函数double和halve,当然了,这都非常容易实现:(define(double x)(+ x x))(define(halve x)(/ x 2))题目中要求我们设计一个类似于fast-expt的求乘积的过程,并且只用对数的步数。(defin... 阅读全文
posted @ 2015-02-05 19:14 nomasp 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 练习1.16这道题题目特别长,说的无非就是要用一个不变量记录中间结果,然后写出对数步数内的通过迭代来计算幂的函数,当然了还要用到题目中括号内的那个关系。下面就直接上代码了:(define(fast-expt b n)(fast-expt-iter 1 b n))(define(fast-expt... 阅读全文
posted @ 2015-02-05 19:13 nomasp 阅读(134) 评论(0) 推荐(0) 编辑
摘要: (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)))))大家自... 阅读全文
posted @ 2015-02-05 16:23 nomasp 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 这道练习的翻译有误。原文是:Write a procedure that computes elements of Pascal’s triangle bymeans of a recursive process.正确的翻译应该是计算帕斯卡三角形的各个元素。y :0111121213133 14... 阅读全文
posted @ 2015-02-05 15:55 nomasp 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 这种题目太像是数学题目了,不过拿到编程上又有一些的难度。我们先根据题目中的条件,写出类似于第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)于... 阅读全文
posted @ 2015-02-05 15:53 nomasp 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 我们先将Ackermann函数写入Edwin中,当然了,再获取结果之前应该先自己用笔算算。结果如下:(A 1 10);Value: 1024(A 2 4);Value: 65536(A 3 3);Value: 65536其中65536也就是16的四次方。接下来通过连续的n值来观察题目中随后给出的... 阅读全文
posted @ 2015-02-05 13:19 nomasp 阅读(110) 评论(0) 推荐(0) 编辑
摘要: 以下是第一个加起两个正整数的方法,其中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)))(inc (... 阅读全文
posted @ 2015-02-05 12:56 nomasp 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 如果对前面的内容理解透彻了,看到这个表达式就知道直接将y换成guess即可。(define (improve guess x)(/(+ (* guess guess)) (* 2 guess)) 3))但是如果中写到这里就认为完成了那就错了,如果还是用书中的good-enough?的话,那也应该... 阅读全文
posted @ 2015-02-05 12:00 nomasp 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 练习1.7这道题回应了第15页所说的good-enough?并不是一个很好的检测方法。我们首先来按照题目要求用4组最大或最小的数来检测原文中的good-enough?(sqrt-iter 1.0 0.00000081)0.0009;Value: 0.3125863108711088(sqrt-i... 阅读全文
posted @ 2015-02-05 11:10 nomasp 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 练习1.6这道题通过由一个新版本的if来引出,主要讨论的还是应用序和正则序的问题。我看到“将if提供为一种特殊形式”时还满头雾水,并不太清楚什么特殊形式。当再返回看if的语法时才发现,这在第12页if的一般表达式下面一段。如果得到真值,解释器就去求值并返回其值。注意,在此处已经返回其值了,并没有... 阅读全文
posted @ 2015-02-05 11:08 nomasp 阅读(131) 评论(0) 推荐(0) 编辑
上一页 1 ··· 7 8 9 10 11