解多方程组

2024-04-25 03:39:39 发布

您现在位置:Python中文网/ 问答频道 /正文

from sympy import *
x = sym.symbols('x')
result = solve([Eq(Mod(x, 23), 0), Eq(Mod(x, 41), 28), Eq(Mod(x, 829), 806), Eq(Mod(x, 13), 3), Eq(Mod(x, 17), 14), Eq(Mod(x, 29), 6), Eq(Mod(x, 677), 623), Eq(Mod(x, 37), 14), Eq(Mod(x, 19), 3)], x)

引发错误:

not a valid Sympy Expression


Tags: fromimportmod错误notresulteqsymbols
1条回答
网友
1楼 · 发布于 2024-04-25 03:39:39

在Symphy 1.7.1中尝试您的示例时,我得到了NotImplementedError

这种方程组在solve中没有实现。我不确定Symphy中的哪个高级解算器函数可以处理这个问题

对于这种系统,有一个低级函数crt,不过: https://docs.sympy.org/latest/modules/ntheory.html#sympy.ntheory.modular.crt

传入一个模列表和一个余数列表:

>>> from sympy.ntheory.modular import crt
>>> crt([23, 41, 829, 13, 17, 29, 677, 37, 19], [0, 28, 806, 3, 14, 6, 623, 14, 3])
(600689120448303, 2384517360007913)

我认为这意味着解决方案的形式是

    x = 600689120448303 + 2384517360007913 * n

对于任何整数n

相关问题 更多 >