计算n阶行列式的计算例题式

当前位置:& >
> 求N阶行列式的值
求N阶行列式的值
改变N的值可以求N阶行列式的值
#define N 4  #include &stdio.h&  #include &stdlib.h&  void main()  {  &int i,j,m,n,s,t,k=1;  &double a[N][N],f=1,c,x,  &for (i=0;i&N;i++)  &&for (j=0;j&N;j++)  &&&scanf ("%lf",&a[i][j]);  &for (i=0,j=0;i&N&&j&N;i++,j++)  &{  &&if (a[i][j]==0)  &&{  &&&for (m=i;a[m][j]==0;m++);  &&&if (m==N)  &&&{  &&&&sn=0;  &&&&printf("detA=%lf
",sn);  &&&&exit(0);  &&&}  &&&else  &&&&for (n=j;n&N;n++)  &&&&{  &&&&&c=a[i][n];  &&&&&a[i][n]=a[m][n];  &&&&&a[m][n]=c;  &&&&}  &&&&k*=(-1);  &&}  &&for (s=N-1;s&i;s--)  &&{  &&&x=a[s][j];  &&&for (t=j;t&N;t++)  &&&&a[s][t]-=a[i][t]*(x/a[i][j]);  &&}  &}  &for (i=0;i&N;i++)  &&f*=a[i][i];  &sn=k*f;  &printf ("detA=%lf
",sn);  }&N阶行列式的计算_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
N阶行列式的计算
上传于||文档简介
&&行​列​式​计​算
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩2页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢花了半天时间,写了这个n阶行列式计算的程序,应该算是比较优美吧,有很多地方多次做了优化,程序占用内存不是很大,要是说小吧,也不合适,因为里边有一个递归,而且递归的深度还比较深。时间复杂度具体没有细看,应该不会太大。ok,先看程序。&&C++ Code&123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081&#include&malloc.h&#include&&stdio.h&#include&stdlib.h&int&*c,n=0,a,sum=0;int&aq(int&a){&&&&int&s=1;&&&&for(int&i=1;&i&=a;&i++)s*=i;&&&&return&s;}void&swap(int&*a,&int&*b){&&&&int&m=*a;&&&&*a=*b;&&&&*b=m;}bool&sa(int&*l){&&&&int&n=0;&&&&for(int&i=0;&i&a-1;&i++)for(int&j=i+1;&j&a;&j++)if(l[i]&l[j])n++;&&&&if(n%2==0)return&false;&&&&return&true;}void&perm(int&*l,int&k,int&m){&&&&int&i,s=1;&&&&if(k&m)&&&&{&&&&&&&&n++;&&&&&&&&for(int&j=0;&j&a;&j++)s*=c[l[j]+a*j];&&&&&&&&if(sa(l))s*=-1;&&&&&&&&printf("%5d&&&&&&完成度:%2.2f%%/n",sum+=s,n/(aq(a)*0.1)*10);&&&&}&&&&else&&&&{&&&&&&&&for(i=k;&i&=m;&i++)&&&&&&&&{&&&&&&&&&&&&swap(l+k,l+i);&&&&&&&&&&&&perm(l,k+1,m);&&&&&&&&&&&&swap(l+k,l+i);&&&&&&&&}&&&&}}void&main(){&&&&int&*b,i,f,e;&&&&system("color&3e");u:&system("cls");&&&&printf("请输入行列式的阶数:/n");&&&&scanf_s("%d",&a);&&&&b=(int&*)malloc(sizeof(int)*a);&&&&c=(int&*)malloc(sizeof(int)*a*a);&&&&for(i=0;&i&a;&i++)*(b+i)=i;&&&&for(i=0;&i&a*a;&i++)&&&&{&&&&&&&&if(i%a==0)printf("请依次输入行列式中第%d行的值(以空格分隔):/n",i/a+1);&&&&&&&&scanf_s("%d",c+i);&&&&}&&&&printf("/n/n");&&&&perm(b,0,a-1);&&&&printf("/n行列式展开式共有%d项/n",&aq(a));&&&&for(i=0;&i&a*a;&i++)&&&&{&&&&&&&&if(a%2!=0)f=a+1;&&&&&&&&else&f=a;&&&&&&&&if(i/a+1==f/2&&i%a==0)printf("D&=&");&&&&&&&&else&if(i%a==0)printf("&&&&");&&&&&&&&if(i%a==0)printf("┃");&&&&&&&&if((i+1)%a==0)printf("%2d",&*(c+i));&&&&&&&&else&printf("%2d&",*(c+i));&&&&&&&&if((i+1)%a==0)printf("┃");&&&&&&&&if((i+1)/a==f/2&&(i+1)%a==0)printf("&=&%d/n",sum);&&&&&&&&else&if((i+1)%a==0)printf("/n");&&&&}&&&&printf("/n/n");&&&&printf("是否继续?(&1&/&0&)/n");&&&&scanf_s("%d",&e);& & n=0;&&&&if(e==1)goto&u;&&&&else&if(e==0)exit(0);}&具体里边的思想随后再作补充吧。(未完待续)&君,已阅读到文档的结尾了呢~~
理解行列式的定义与性质;掌握三阶行列式的对角线计算方法;本文语言简练,内容丰富,叙述明确得当,是所述领域中不可多得的优秀文章。
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
理解行列式的定义与性质;掌握三阶行列式的对角线计算方法;
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口}

我要回帖

更多关于 计算n阶行列式dn 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信