ACM常用算法(11)
发布时间:2021-06-06
发布时间:2021-06-06
ACM常考算法
t1=t2;s1=s2; goto loop; }
return r2; }
11.行列式计算
语法:result=js(int s[][],int n) 参数:
s[][]: 行列式存储数组 n: 行列式维数,递归用 返回
行列式值 值: 注意: 源程序:
函数中常数N为行列式维度,需自行定义
int js(s,n)int s[][N],n; {
int z,j,k,r,total=0; int b[N][N];/*b[N][N]用于存放,在矩阵s[N][N]中元素s[0]的余子式*/
if(n>2) {
for(z=0;z<n;z++) {
for(j=0;j<n-1;j++)
for(k=0;k<n-1;k++)
if(k>=z) b[j][k]=s[j+1][k+1]; else b[j][k]=s[j+1][k];
if(z%2==0) r=s[0][z]*js(b,n-1); /*递归调用*/ else r=(-1)*s[0][z]*js(b,n-1); total=total+r; } }
else if(n==2)
total=s[0][0]*s[1][1]-s[0][1]*s[1][0]; return total; }
12.求排列组合数
语法:result=P(long n,long m); / result=long C(long n,long m); 参数:
m: 排列组合的上系数 n: 排列组合的下系数 返回排列组合数