Цикл никак не изменяет матрицу, но каждая функция работает в цикле, если зафиксировать j перед циклом или поставить число. Почему это так происходит?

<< Combinatorica`
n = 5;
p = IdentityPermutation[n]
b = NextPermutation[p];
PermutationMatrix = IdentityMatrix[n];
R = {{0, 0, 0, 0, 0}, {0, 0, 0, 0, 0}, {0, 0, 0, 0, 0}, {0, 0, 0, 0, 0}, {0, 0, 0, 0, 0}};
M1 = {{0, 0, 0, 0, 0}, {0, 0, 0, 0, 0}, {0, 0, 0, 0, 0}, {0, 0, 0, 0, 0}, {0, 0, 0, 0, 0}};
j = 0;
While[j < n,
  j += 1;
  PermutationMatrix[[j, j]] = 0;
  i = j;
  PermutationReplace[j, b];
  PermutationMatrix[[i, j]] = 1;
  M2 = Transpose[M];
  If[M2.M1.PermutationMatrix == R, Print["TRUE"], None]
  ];
PermutationMatrix
b

вывод представлен ниже {1, 2, 3, 4, 5} {{1, 0, 0, 0, 0}, {0, 1, 0, 0, 0}, {0, 0, 1, 0, 0}, {0, 0, 0, 1, 0}, {0, 0, 0, 0, 1}} {1, 2, 3, 5, 4}


Ответы (0 шт):