Member 13936203 Ответов: 0

Как решить систему линейных уравнений над $\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. Сначала нужно выработать правильный алгоритм решения задачи. Как только вы это запишете, вы можете преобразовать шаги алгоритма в код.

0 Ответов