Как решить систему линейных уравнений над $\mathbf{Z}_p$ в Python
Рассмотрим систему линейных уравнений :
$$
а_0+а_1+а_2+а_3=5
a_0+2a_1+4a_2+8a_3=14
a_0+3a_1+9a_2+27a_3=33
a_0+4a_1+16a_2+64a_3=5
$$
Я хочу решить эту вышеприведенную систему уравнений над целым числом по модулю $p$, где $p$ - простое число.
Я попытался решить эту систему уравнений в python, используя следующий код, но он не служит моей цели. Вот этот код :
а = НП.массив([1,1,1,1],[1,2,4,8],[1,3,9,27],[1,4,16,64]])
б = НП.массив([5,14,33,68])
х = НП.linalg.решить(а, б)
печать(x)
Это дает неверный ответ. Я решил проблему с Мудрецом. Это дает правильный ответ : Вот код :
R = IntegerModRing(19)
M = Матрица(R, [[1,1,1,1],[1,2,4,8],[1,3,9,27],[1,4,16,64]])
b = вектор(R, [5,14,33,68])
М. solve_right(б)
Ответ : (0, 5, 18, 1)
Как я могу сделать то же самое в Python?
Что я уже пробовал:
Я попытался решить эту систему уравнений в python, используя следующий код, но он не служит моей цели. Вот этот код :
а = НП.массив([1,1,1,1],[1,2,4,8],[1,3,9,27],[1,4,16,64]])
б = НП.массив([5,14,33,68])
х = НП.linalg.решить(а, б)
печать(x)
Это дает неверный ответ.
Richard MacCutchan
Проблема не имеет ничего общего с Python. Сначала нужно выработать правильный алгоритм решения задачи. Как только вы это запишете, вы можете преобразовать шаги алгоритма в код.