如何解决Python中的同余系统?

2023-12-28

对于问题 Ax == B (MOD C) 我这样做了,而且没问题:

 def congru(a,b,c):
    for i in range(0,c):
       if ((a*i - b)%c)== 0 :
          print(i)

现在我必须求解方程组,其中 A = ( 5x + 7y) 且 A= (6x + 2y), 且B=4和B=12,分别,C为26。

换句话说: ( 5x + 7y) ≠ 4 (mod 26) (6x + 2y) ≠ 12 (mod 26)

我怎么做?

Thanks.


For the aX ≡ b (mod m)线性同余,这是一个更强大的 Python 解决方案,基于欧拉定理,即使对于非常大的数字也能很好地工作:

def linear_congruence(a, b, m):
    if b == 0:
        return 0

    if a < 0:
        a = -a
        b = -b

    b %= m
    while a > m:
        a -= m

    return (m * linear_congruence(m, -b, a) + b) // a

>>> linear_congruence(80484954784936, 69992716484293, 119315717514047)
>>> 45347150615590

For the X, Y系统:将第一个方程乘以2第二个由-7,将它们加在一起并求解X。然后替换X并解决Y.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何解决Python中的同余系统? 的相关文章

随机推荐