可能重复:
方案中模 m 的乘法逆
我已经编写了一个代码来解决 x 和 y 作为一对。我需要编写一个模逆代码,使用 ax + by = 1 找到 e 模 n 的乘法逆。
块引用
(define (ax+by=1 a b)
(if (= b 0)
(cons 1 0)
(let* ((q (quotient a b))
(r (remainder a b))
(e (ax+by=1 b r))
(s (car e))
(t (cdr e)))
(cons t (- s (* q t))))))
编辑:使用以下功能解决了问题。
块引用
(define inverse-mod (lambda (a m)
(if (not (= 1 (gcd a m)))
(display "**Error** No inverse exists.")
(if (> 0(car (ax+by=1 a m)))
(+ (car (ax+by=1 a m)) m)
(car (ax+by=1 a m))))))