快好知 kuaihz订阅观点

 

求行列式的三种算法及C程序

“你学过《线性代数》和《C语言》吗?”, “学过,……我便考你一考。计算行列式用C语言怎样写?”,,,“不能写罢?……我教给你,记着!这些算法应该记着。将来做项目当老板的时候要用”,,,“对呀对呀!…行列式的算法有三样写法,你知道么?”

在前面的博文中已提到计算行列式的两种算法,即:

一、按第一行展开的递归方法,链接如下:

http://blog.sciencenet.cn/blog-797552-1223086.html)

 

二、利用初等行变换,化成上三角矩阵求对角线元素乘积的方法,链接如下:

http://blog.sciencenet.cn/blog-797552-1227970.html

 

三、一般教材还给出一种按完全展开式计算的方法,即,每行取一元素按元素列下标的“全排列”和“逆序数”奇偶性构成n个元素的乘积,对这n!项求和。

这种方法也是通过递归的方式,生成1到n个数的全排列。每生成一个排列存放到数组P中,用A[i*(m+1)+P[i]-1]取对应元素。编写这个算法,琢磨了很久,主要是求全排列不好处理,最后参考了的《算法竞赛》(罗勇军、郭卫斌著)书中递归打印全排列的算法思想才调试通。

  主函数及相关测试数据和输出矩阵函数如下:

运行结果:

本文第一段是写完博文后又加的,改自<孔乙己>,写完程序想教给学生,经常有孔乙己的这种感觉,穷困、迂腐,好为人师,却常遇这种尴尬。<孔乙己>原文为:

“你读过书么?”我略略点一点头。他说,“读过书,……我便考你一考。茴香豆的茴字,怎样写的?”我想,讨饭一样的人,也配考我么?便回过脸去,不再理会。孔乙己等了许久,很恳切的说道,“不能写罢?……我教给你,记着!这些字应该记着。将来做掌柜的时候,写账要用。”我暗想我和掌柜的等级还很远呢,而且我们掌柜也从不将茴香豆上账;又好笑,又不耐烦,懒懒的答他道,“谁要你教,不是草头底下一个来回的回字么?”孔乙己显出极高兴的样子,将两个指头的长指甲敲着柜台,点头说,“对呀对呀!……回字有四样写法⑿,你知道么?”我愈不耐烦了,努着嘴走远。孔乙己刚用指甲蘸了酒,想在柜上写字,见我毫不热心,便又叹一口气,显出极惋惜的样子。

   

本站资源来自互联网,仅供学习,如有侵权,请通知删除,敬请谅解!
搜索建议:求行列式的三种算法及C程序  行列式  行列式词条  算法  算法词条  程序  程序词条  
观点

 弦论简史(六)

11.弦论简史(六)彼得·沃特 著左 芬   译近期风尚 1997年11月出现了胡安·马尔达西纳的一篇文章,其中包含的一种新想法主...(展开)

观点

 谁开创了微生物纯培养技术

 何为纯培养?微生物学中把从一个(或一群相同的)细胞经过培养繁殖而得到的后代,称纯培养,最重要的特点是遗传性纯的谱系。单一的微生物细胞可以称之为菌株,...(展开)

观点

 论文,让我忐忑让我忧

    近几年,我很少投稿。原因或许有两个方面:一方面是我近年花了较多精力折腾“圕人堂服务体系”,写正经论文少了;另一方面,近年在冲国家社科...(展开)