【SICP练习】21 练习1.27
2015-02-07 10:30
127 查看
练习1.27
这道题的场景是在注释47中,博主更关心的问题是:(第三行)撞上能欺骗费马检查的值的概率有多少,居然会比什么宇宙射线造成计算机出差。后者个人感觉是永远不会发生的,前者倒是还有可能发生。希望把前者的概率算出来的童鞋将过程列出来啦!
言归正传,题目的意思就是要去验算注释47中的那几个Carmichael,那就来code吧:
(define (find-carmichael n)
(define (find-carmichael-test x n)
(cond((= x n) #t)
((same-remainder?x n)
(find-carmichael-test(+ x 1) n))
((else#f)))
(define (same-remainder? x n)
(= (expmod x n n) x))
(find-carmichael-test 1 n))
当然了,这里要load保存好的expmod函数。然后就是测试了:
(carmichael-test 6601)
;Value: #t
其他的都一样的返回结果,不然就是函数写错了。
练习1.27
这道题的场景是在注释47中,博主更关心的问题是:(第三行)撞上能欺骗费马检查的值的概率有多少,居然会比什么宇宙射线造成计算机出差。后者个人感觉是永远不会发生的,前者倒是还有可能发生。希望把前者的概率算出来的童鞋将过程列出来啦!
言归正传,题目的意思就是要去验算注释47中的那几个Carmichael,那就来code吧:
(define (find-carmichael n)
(define (find-carmichael-test x n)
(cond((= x n) #t)
((same-remainder?x n)
(find-carmichael-test(+ x 1) n))
((else#f)))
(define (same-remainder? x n)
(= (expmod x n n) x))
(find-carmichael-test 1 n))
当然了,这里要load保存好的expmod函数。然后就是测试了:
(carmichael-test 6601)
;Value: #t
其他的都一样的返回结果,不然就是函数写错了。
相关文章推荐
- 【SICP练习】21 练习1.27
- 笨办法学 Python · 续 练习 21:二分搜索
- python练习程序(c100经典例21)
- Python练习100例-21
- 21-IO流-08-IO流(字符流-练习-复制文本文件_1)
- SICP-练习2.17
- 【SICP练习】15 练习1.21
- 【SICP练习】144 练习3.82
- 【SICP练习】88 练习2.60
- 【SICP练习】83 练习2.55
- 【SICP练习】77 练习2.48-2.49
- 【SICP练习】117 练习3.44
- 【SICP练习】124 练习3.55
- 【SICP练习】27 练习1.33
- 【SICP练习】141 练习3.72
- 【SICP练习】18 练习1.24
- 【SICP练习】11 练习1.17
- 【SICP练习】18 练习1.24
- 【SICP练习】35 练习1.40
- 【SICP练习】57 练习2.27