n阶行列式的全排列求解(Java)
上一个随笔,我介绍了全排列的递归求解,其中还有排列的逆序数等代码,这次我来介绍如何使用全排列计算行列式的值。 使用全排列求行列式的值,简单的描述就是: 对这个行列式每一行选取一个数,这些数处于行列式的不同的列,将这些数相乘,结果记为A_1 将这些数的列标按行标从上到下的顺序排列,如果这个排列的逆序数为偶数,A_1加个正号+A_1,否则加个负号-A_1 由排列组合知识我们知道我们一共能从行列式中取出n!种情况。他们的和就是行列式的值 (刚开始用博客园,没找到插入latex的地方,我就截个图了。。。) 可见,我们需要实现以下功能: 1. 定义矩阵类 2. 获得矩阵列标的全排列 3. 对每个排列,在矩阵的每一行取一个数,并计算这个排列的逆序数,决定符号 4. 计算取出的数的求积,综合以上操作,求出行列式的值 逐个实现! 1. 首先,类定义的代码分别如下(成员函数逐一介绍): public class Matrix { /** * author:ZhaoKe * college: CUST */ public int row; public int column; public double [][] elements; public Matrix() { this .elements = new double [ this .row][ this .column]; for ( int