小编use*_*207的帖子

Miller-Rabin Scheme实施不可预测的输出

我是Scheme的新手.我已经尝试并使用PLT方案实现了Rabin-Miller算法的概率变体.我知道这是概率性的,但我大部分时间都得到了错误的结果.我用C实现了同样的东西,它运行良好(从未尝试过失败).我在调试时获得了预期的输出,但是当我运行时,它几乎总是以不正确的结果返回.我使用了维基百科的算法.

(define expmod( lambda(b e m)
                 ;(define result 1)
                 (define r 1)
                 (let loop()
                   (if (bitwise-and e 1)
                       (set! r (remainder (* r b) m)))
                   (set! e (arithmetic-shift e -1))
                   (set! b (remainder (* b b) m))
                   (if (> e 0)
                       (loop)))r))

(define rab_mil( lambda(n k)
                  (call/cc (lambda(breakout)
                  (define s 0)
                  (define d 0)
                  (define a 0)
                  (define n1 (- n 1))
                  (define x 0)          
                  (let loop((count 0))
                    (if (=(remainder n1 2) 0)
                        (begin
                          (set! count (+ count …
Run Code Online (Sandbox Code Playgroud)

algorithm scheme primes probability primality-test

3
推荐指数
1
解决办法
558
查看次数

标签 统计

algorithm ×1

primality-test ×1

primes ×1

probability ×1

scheme ×1