У меня есть функция, вывод которой представляет собой список матриц смежности двудольных графов, и я хочу проверить, имеет ли случайно сгенерированная матрица одну из этих матриц в качестве подматрицы внутри нее.
Моя функция дляГенерация списка матриц:
Krsvariants[r_, s_] := Module[{aa}, aa = Subsets[Range[1, r + s], {r}];
Table[
Table[
If[MemberQ[Tuples[aa[[k]], 2], {i, j}] \[Or]
MemberQ[Tuples[Complement[Range[1, r + s], aa[[k]]], 2], {i,j}], 0, 1], {i, 1, r + s}, {j, 1, r + s}],
{k, 1, Length[aa]}]]
И для r = 2 s = 3 имеет вывод
{{{0, 0, 1, 1, 1}, {0, 0, 1, 1, 1}, {1, 1, 0, 0, 0}, {1, 1, 0, 0,
0}, {1, 1, 0, 0, 0}}, {{0, 1, 0, 1, 1}, {1, 0, 1, 0, 0}, {0, 1, 0,
1, 1}, {1, 0, 1, 0, 0}, {1, 0, 1, 0, 0}}, {{0, 1, 1, 0, 1}, {1, 0,
0, 1, 0}, {1, 0, 0, 1, 0}, {0, 1, 1, 0, 1}, {1, 0, 0, 1, 0}}, {{0,
1, 1, 1, 0}, {1, 0, 0, 0, 1}, {1, 0, 0, 0, 1}, {1, 0, 0, 0, 1}, {0,
1, 1, 1, 0}}, {{0, 1, 1, 0, 0}, {1, 0, 0, 1, 1}, {1, 0, 0, 1,
1}, {0, 1, 1, 0, 0}, {0, 1, 1, 0, 0}}, {{0, 1, 0, 1, 0}, {1, 0, 1,
0, 1}, {0, 1, 0, 1, 0}, {1, 0, 1, 0, 1}, {0, 1, 0, 1, 0}}, {{0, 1,
0, 0, 1}, {1, 0, 1, 1, 0}, {0, 1, 0, 0, 1}, {0, 1, 0, 0, 1}, {1, 0,
1, 1, 0}}, {{0, 0, 1, 1, 0}, {0, 0, 1, 1, 0}, {1, 1, 0, 0, 1}, {1,
1, 0, 0, 1}, {0, 0, 1, 1, 0}}, {{0, 0, 1, 0, 1}, {0, 0, 1, 0,
1}, {1, 1, 0, 1, 0}, {0, 0, 1, 0, 1}, {1, 1, 0, 1, 0}}, {{0, 0, 0,
1, 1}, {0, 0, 0, 1, 1}, {0, 0, 0, 1, 1}, {1, 1, 1, 0, 0}, {1, 1, 1,
0, 0}}}
, что соответствует 10 различным матрицам.Затем я хочу проверить, содержит ли случайная матрица хотя бы один из этих 10, и посчитать, сколько.
TK23[M_, n_] := Module[{S, k, i},
S = Subsets[Range[n], {5}];
Return[Count[
Table[MemberQ[Krsvariants[2, 3], M[[S[[k]], S[[k]]]]] , {k, 1,
Binomial[n, 5]}], True]];]
Но когда я запускаю это, всегда кажется, что он возвращает ноль, даже когда применяется к матрицам, которые определенно должны содержать один из 10.