1、随机行列式实现
支持输入一个正整数,然后行列式里值的随机数整数范围,返回一个与行列式类似的列表,相关代码如下:
# 生成指定长度的行列式
def generate_random_matrix(n,begin,end):
matrix = []
for i in range(n):
vector = []
for i in range(n):
random_number = random.randint(begin,end)
vector.append(random_number)
matrix.append(vector)
return matrix
2、计算逆序数
输入包含逆序数的列表,结果返回该排列最后的逆序数
# 计算逆序数
def count_reverse_num(nv_numbers):
reverse_num = 0
for index,nv_number in enumerate(nv_numbers):
print(reverse_num)
for m in range(index+1,len(nv_numbers)):
if nv_number > nv_numbers[m]:
reverse_num = reverse_num + 1
print(index,m,reverse_num)
return reverse_num
3、相关概念
3.1、逆序数
- n级排列:n个自然数组成的无重复有序实数组
- 逆序:在n级排列中,一个较大的数排在较小的数前面
- 逆序数:在n级排列中,逆序的总数(从左往右,我比右边几个大,遍历,求和)
3.2、行列式
行列式本质是一个计算法则,起计算结果是一个数字。而许多对他的定义,本质上是在解释这个计算法则。如果觉得复杂难懂的话,可以理解为从n阶行列式n的平方个数中去取n项,然后这n项要求是不同行不同列的。将这n项按照从1到n自然顺序排列起来,而此时列排列顺序是奇排列还是偶排列决定加上负号和正号。最后,将这样的n项乘积和加起来,得到的结果就是行列式的值。