对于问题 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(使用前将#替换为@)