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)
вызывает ошибку:
недопустимое выражение Sympy
Я получаю NotImplementedError
, когда пробую ваш пример в sympy 1.7.1.
Такая система уравнений не реализована в solve
. Я не уверен, какая высокоуровневая решательная функция в sympy могла бы справиться с этим.
Однако есть низкоуровневая функция 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
.