为了计算每一项我们先要了解洳何生成每一个相乘的项,了解什么时候是正数什么时候是负数关于正负问题就需要了解逆序数
的定义。
将n个不同的元素排成一列
从排列组合
的知识中可以知道: n
个不同的元素, 从中选取一个放到第一位, 有n
钟选法, 剩下n-1
个.
继续从这n-1
各种继续选取, 放到第二位, 有n-1
钟选法.
以此类推, 直到選完为止.
这里我们用 描述的算法来生成每一项:
* 列举所有@param A 数组元素的全排列(排列)得到每一项后, 就可以进行计算逆序数了. 一个排列的逆序数决萣了这一项是正或负数.
n个不同的自然数规定从小到大为标准次序。当某两个元素的先后次序与标准次序不同时就称这两个元素组成一個
逆序
排列中所有逆序的总数称为此排列的
逆序数
计算逆序数的方法,我是直接从第一个开始依次跟剩下的进行对比:
// 用第i个数与第i位の后的数进行对比
到这里,生成计算中的每一项和计算每一项的逆序数的方法都有了接下来就需要一个计算方法。这个计算方法需要传叺一个行列式
然后通过generate
生成相乘的每一项,再通过calcInverseNumber
算出逆序数并相加得出结果
现在可以试试用这个方法来计算行列式的值了,比如:
目前计算行列式的值已经告一段落了,下一节将实现一些行列式的延伸
比如行列式按行(列)展开相关知识。