from itertools import combinations,permutations #检测 #生成一个排序函数 #计算逆序数 #计算行列式
Matrix = [[1,5,3],[7,4,3],[2,4,232]] #检测 def test(Matrix): #检测是否是一个方阵 for i in
Matrix: if len(i)==len(Matrix): pass for ii in i: if type(ii)==type(101): pass
else: print("请检查您输入的矩阵") print("不可靠的结果") else: print("请检查您输入的矩阵")
print("不可靠的结果") break #输出行列式阶数和n! sum = 1 for i in range(len(Matrix)+1): sum *=
i return len(Matrix),sum def InversionNumber(l): sum = 0 l0 = [] for i in
range(len(l)): if l[i] < l[i-1] and i-1 >= 0: l0.append(l[i-1]) sum += 1 for k
in range(i-1): if l[i] < l[k]: sum += 1 return (-1)**sum def Permute(n):
#返回一个列表,包含整个序列,最后一位表明(-1)^ε l = [] for k in range(1,n+1): l.append(k) L =
list(permutations(l, len(l))) for i in L: L[L.index(i)]=list(i) for i in L:
i.append(InversionNumber(i)) return L def main(Matrix): l,S = test(Matrix) L =
Permute(l) sum = 0 for i in L: sum1 = 1 for ii in range(len(Matrix)): sum1 *=
Matrix[ii][i[ii]-1] sum1 *= i[-1] sum += sum1 return sum if __name__ ==
"__main__": det = main(Matrix)

GitHub

Gitee