Что такое хороший способ реализации исключения Гаусса, когда операторы являются пользовательскими операторами, а не стандартными арифметическими?Гауссово исключение с помощью пользовательских операторов
Вот операторы:
Дополнение
0 + 0 = 0
0 + 1 = 1
1 + 1 = 0
Вычитание:
0 - 0 = 0
0 - 1 = 1
1 - 1 = 0
Умножение:
0 * 0 = 0
0 * 1 = 0
1 * 1 = 1
Отдел:
0/0 = illegal
0/1 = 0
1/1 = 1
Вот пример набор уравнений как расширенная матрица, с ОРЗ в правой колонке:
1, 1, 0, 1, 0, 0, 0, 0, 0, 1
0, 1, 0, 1, 1, 0, 0, 0, 0, 1
0, 1, 1, 0, 0, 1, 0, 0, 0, 1
1, 0, 0, 1, 0, 0, 0, 0, 0, 1
0, 1, 0, 1, 1, 0, 0, 0, 0, 1
0, 0, 0, 0, 0, 1, 0, 0, 0, 1
0, 0, 0, 1, 0, 0, 1, 0, 0, 1
0, 0, 0, 1, 1, 0, 1, 1, 0, 1
0, 0, 0, 0, 0, 1, 0, 0, 1, 1
Решение для этого набора:
x1 = 1
x2 = 0
x3 = 0
x4 = 0
x5 = 1
x6 = 1
x7 = 1
x8 = 1
x9 = 0
Gaussian для меня это не удалось, поскольку я попробовал это на этом наборе.
Уравнения будут иметь 9, 16, 25 или 36 терминов. Было бы здорово, если бы алгоритм легко расширялся до больших квадратов, до 100. Я ищу алгоритм, в псевдокоде или JavaScript, желательно.
Обратите внимание, что из-за новых операторов некоторые множества уравнений становятся неразрешимыми, так как их результаты будут дробями. Меня особенно интересует вопрос разрешимости. – Killroy