Есть матрицы Y размерности NxN, элементы которой могут быть только двух типов, например 0 и 1.
Две или более матрицы считаются эквивалентными, если, переставляя любое количество строк и/или столбцов, их можно привести к одному и тому же виду. Например, для матрицы, в которой есть только один единичный элемент, расположенный в ячейке Y[1][1], все остальные матрицы с только одним единичным элементом, где бы он не находился, являются эквивалентными.
Интересует алгоритм получения всех не эквивалентных матриц при заданных размерности матрицы N и числе M единичных элементов, 0<= M <= (N*N).
В качестве альтернативы интересует алгоритм проверки, что 2 заданные матрицы являются эквивалентными.