这在我使用Scheme教授的入门编程课程中是个人挑战,但我对Python示例同样满意.
我已经在方案中实现了模幂运算的二进制方法,如下所示:
(define (pow base expo modu)
(if (zero? expo)
1
(if (even? expo)
(mod (expt (pow base (/ expo 2) modu) 2) modu)
(mod (* base (pow base (sub1 expo) modu)) modu))))
Run Code Online (Sandbox Code Playgroud)
这是必要的,因为Chez Scheme没有任何类似于python的pow(base expo modu)的实现.
现在我正在尝试实现解决模乘的蒙哥马利方法.举个例子,我有:
Trying to solve:
(a * b) % N
N = 79
a = 61
b = 5
R = 100
a' = (61 * 100) % 79 = 17
b' = (5 * 100) % 79 = 26
RR' - NN' = …Run Code Online (Sandbox Code Playgroud)