Weisstein の予想 (https://cs.uwaterloo.ca/journals/JIS/VOL7/Sloane/sloane15.pdf) に関連する問題に取り組んでいるときに、n = 2、3、4、... 正しいバイナリ シーケンスを考えて、それに応じて分割すれば、それほど難しくありません。たとえば、すべての 3 x 3 行列は次のとおりです。
With[{n = 3},
lis = PadLeft[IntegerDigits[#, 2], n^2]& /@ Range[0, 2^n^2 - 1];
mats = (Partition[#, n] & ) /@ lis
];
Weisstein の予想では、 n = 2、3、...ごとに、固有値がすべて実数で正の行列の数を数えます。n = 2 の場合は 3 です。n = 3 の場合、25個あります。n = 4の場合、543 あります。等々。固有値の計算は時間がかかりますが、簡単です。
私が興味を持っていたのは、n x n行列を列挙する他の方法を見つけることでした。それらすべてを取得するために、2^( n ^2)までの整数の基数 2 表現を使用し、分割して行列を作成しました。他の (より効率的な?) 方法があるはずです。