SCIP test answer
文章平均质量分 59
liweisnake
这个作者很懒,什么都没留下…
展开
-
计算机程序的构造与解释 练习1.16, 1.19
练习1.16要求仿造fast-expt使用迭代方式求幂。这种方式求幂实在是高明!正常的求幂方式是n*n*...*n,需要乘n趟,但是这个方式每次将解空间缩减一半(很像二分查找),所以最后只需要求logn次。 这里尾递归每趟的不变量就是fast_iter_expt的结果,即p,同样的,偶数时,利用(b^2)^n/2的关系,即每趟n减半,p加倍,而奇数时则变换为偶数 (define (even原创 2013-06-12 22:58:39 · 1119 阅读 · 1 评论 -
求素数,求幂的应用
一直以来,都不清楚计算机中很多题目为什么要有求素数,费马小定律究竟有何用?为什么要有求一个大幂数? 直到看了SCIP,才慢慢有点感觉,这里总结一下。 密码学里面的经典RSA算法,利用的就是对两个大素数乘积做因式分解很难这一假设,从而将两个大素数的乘积当做公钥公开。 这就转化为一个问题:如何快速的找到2个大素数,这两个素数足够大,使得他们乘积有足够的规模。 好了,找素原创 2013-06-15 11:28:16 · 1074 阅读 · 0 评论 -
关于Lisp中正则序和应用序的问题,练习1.5,1.6,1.20
关于正则序和应用序的问题,贯穿了全书,中间的习题和后面的惰性求值都会涉及到。 书上已经给出了明确的定义:正则序是:完全展开后规约,应用序是:先求值而后应用。 以练习1.5为例, (define (p) (p)) (define (test x y) (if (= x 0) 0 y)) (test 0 (p)) 使用正则序(直接将参数代入而不求值),会原创 2013-06-15 00:18:06 · 1638 阅读 · 0 评论