- 注册时间
- 2005-3-18
- 最后登录
- 1970-1-1
|
这两天在编一个行列式计算的程序 好像高于四阶的行列式计算不能用对角线法则计算吧 但是在网上出现的给出的算法都几乎是用此种方法 比如如下的地这个
#define M 4
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <conio.h>
int hanglieshi(int array[M][M])
{
int temp[M][2*M];
int i,j,c,c1;
int result=0,t=1;
for(i=0;i<M;i++)
{
for(j=0;j<2*M;j++)
{
temp[j]=array[j%M];
}
}
for(c1=0;c1<M;c1++)
{
i=0;
j=c1;
t=1;
for(c=0;c<M;c++)
{
t*=temp[j];
i++;
j++;
}
result+=t;
}
for(c1=0;c1<M;c1++)
{
i=M-1;
j=c1;
t=1;
for(c=0;c<M;c++)
{
t*=temp[j];
i--;
j++;
}
result-=t;
}
return result;
}
void init(int array[M][M])
{
int i,j;
randomize();
for(i=0;i<M;i++)
for(j=0;j<M;j++)
array[j]=random(20)+1;
}
output(int array[M][M])
{
int i,j;
for(i=0;i<M;i++)
{
printf("\n\n");
for(j=0;j<M;j++)
printf("%4d",array[j]);
}
}
main()
{
int array[M][M];
clrscr();
init(array);
output(array);
printf("\n%d",hanglieshi(array));
}
但是我用LOJA 的 行列式计算器 计算的 高于 4阶 答案就不一样 很纳闷 LOJA 可否给指点一下 能给出您的算法 更好
论坛里的大哥们 能否给我 指点下 刚学行列式 还不很懂 到底哪里出错了
能给出正确程序最好 或者说出正解的算法 给出列程( C C++ JAVA VB 任意代码都可以 )
[ 本帖最后由 csh 于 2007-11-9 12:54 编辑 ] |
|