Мне нужно решить систему линейных уравнений над бинарным полем, а именно, у меня есть матрица M, и мне нужно найти вектор v такой, что M.v=0 (mod 2), где все элементы матрицы M и вектора v равны 0 или 1, а справа — вектор, все компоненты которого — четные числа. Есть ли хороший способ запрограммировать его в Mathematica или Matlab?
Решение системы линейных уравнений над бинарным полем
Ответы (1)
Если количество столбцов M
не слишком велико, можно использовать подход грубой силы:
M = [0 1 0 1; 1 0 0 1; 1 1 1 0]; %// example matrix M
V = (dec2bin(0:2^size(M,2)-1)-'0').'; %// all possible vectors v, as columns of V
ind = all(mod(M*V, 2)==0); %// index of solution vectors
solutions = V(:,ind); %// each column is a solution vector
В этом примере
solutions =
0 1
0 1
0 0
0 1
person
Luis Mendo
schedule
11.08.2014
Большое спасибо, но M и v обычно имеют несколько сотен записей...
- person Mr. Gentleman; 11.08.2014
Операция мода на RHS может потребовать грубой силы.
- person Yvon; 11.08.2014
v
? Возможен ли метод грубой силы? - person Luis Mendo   schedule 11.08.2014NullSpace[m, Modulus->2]
. - person Daniel Lichtblau   schedule 13.08.2014