python - 带模的线性方程

标签 python linear-algebra

这就是我真正想要做的

例子:

>>> 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/

相关文章:

python - TfIdf 矩阵返回 BernoulliNB 的特征数量错误

python - 多核硬件上的 numpy

python - 使用 cython 创建矩阵的有效方法

python-3.x - 如何创建一个新的量子门并将量子位初始化为某个值

python - 为什么 Selenium Python 测试看起来如此奇怪?

python - 如何使用 Sudo 在生产服务器上配置 Django 电子邮件

python - GAE 柔性环境中未添加 X-Appengine-Inbound-Appid header

C++ - 通过 Boost 进行反向替换 - 错误的索引错误

math - Clojure 矩阵表示

python - 将 bash 数组传递给 python 列表