|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
在数学中,拉普拉斯展开(亦称拉普拉斯公式)是一个关于行列式的展开式。将一个 矩阵B的行列式进行拉普拉斯展开,即是将其表示成关于矩阵B的某一行(或某一列)的 n个元素的余子式的和。行列式的拉普拉斯展开一般被简称为行列式按某一行(或按某一列)的展开。由于矩阵B有n行n列,它的拉普拉斯展开一共有2n种。不失一般性,我们在求行列式值的时候可以按第一行展开。拉普拉斯展开的推广称为拉普拉斯定理,是将一行的元素推广为关于k行的一切子式。它们的每一项和对应的代数余子式的乘积之和仍然是B的行列式。
设B= (bij)是一个n×n矩阵。B关于第i行第j列的余子式Mij是指B中去掉第i行第j列后得到的n−1阶子矩阵的行列式。有时可以简称为B的 余子式。B的 代数余子式:Cij是指B的 余子式Mij与(-1)^i+j的乘积。(建议用递归)
函数接口定义:
int det(int n, int(*p)[n]);
其中,n 和 p 都是用户传入的参数。 n是不超过10的正整数,p 是指向一个长度为n的一维数组的指针。该函数须返回n阶行列式的值。
裁判测试程序样例:
#include <stdio.h>
int det(int n, int(*p)[n]);
int main(){
int n;
scanf("%d", &n);
int a[n][n];
for(int i=0; i<n; i++){
for(int j=0; j<n; j++){
scanf("%d", *(a+i)+j);
}
}
printf("%d\n", det(n, a));
return 0;
}
/* 你提交的答案将被嵌在这里 */ |
|