【SICP练习】21 练习1.27



练习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

其他的都一样的返回结果,不然就是函数写错了。

版权声明:本文为 NoMasp柯于旺 原创文章,如需转载请联系本人。

posted @ 2015-02-07 10:30  nomasp  阅读(95)  评论(0编辑  收藏  举报