这就是我真正想要做的
例子:
>>> x = matrix([[5,1],[2,4]])
>>> y = matrix([[1,5],[3,3]])
>>> print x
[[5 1]
[2 4]]
>>> print y
[[1 5]
[3 3]]
>>> print x*y % 7
[[1 0]
[0 1]]
现在,假设我不知道
y
。我可以使用线性方程来计算它,如下所示:
5a + c = 1 mod7
5b + d = 0 mod7
2a + 4c = 0 mod7
2b + 4d = 1 mod7
没有
mod7
,我可以这样做:a = np.array([[5,0,1,0],[0,5,0,1],[2,0,4,0],[0,2,0,4]])
b = np.array([[1,0,1,0]])
x = np.linalg.solve(a,b)
但是我该如何使用
mod7
呢? 最佳答案
x = y mod7
等于
x = 7k + y
所以,你原来的线性系统
5a + c = 1 mod7
+ 5b + d = 0 mod7
2a + 4c = 1 mod7
2b + 4d = 0 mod7
等于
5a + c - 7e = 1
+ 5b + d - 7f = 0
2a + 4c - 7g = 1
2b + 4d - 7h = 0
如您所见,对于八个未知数,您有四个方程。所以你不会有一个独特的解决方案。
关于python - 带模的线性方程,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19350889/