2013-10-13 51 views
1

這就是我真正想要做線性方程模

例子:

>>> 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辦呢?

回答

0
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 

正如你所看到的,你有四個方程八個未知數。所以你不會有一個獨特的解決方案。