<p>我想写一个函数,其中给定两个整数“n”和“p”,它生成所有n阶可逆矩阵,其中元素来自{0,1,…,p-1}。
我有以下代码:</p>
<pre><code>import itertools
import numpy as np
def invertible_matrices(n, p):
invertibleMatrices = set()
# generates all the possible matrices
x = [y for y in range(p)]
a = [j for j in itertools.product(x, repeat=n)]
b = {k for k in itertools.product(a, repeat=n)}
for each in b:
if np.linalg.det(each) != 0:
invertibleMatrices.add(each)
return invertibleMatrices
</code></pre>
<p>对于<code>n=2</code>和<code>p=2</code>它可以正常工作,但是对于<code>n=2</code>和<code>p=3</code>我得到<code>50</code>,而答案是<code>48</code>。
任何帮助都将不胜感激</p>
<p>如果你熟悉群论,我想找到<a href="https://en.wikipedia.org/wiki/General_linear_group#Over_finite_fields" rel="nofollow noreferrer">GL(n, p)</a>(有限域上p元素的一般线性群)的所有元素</p>