0
点赞
收藏
分享

微信扫一扫

行列式计算 代码实现

巧乐兹_d41f 2022-05-06 阅读 91

这仅仅作为我学习中的一个记录,因为目前大一下,码代码快一年了,好像还没有实现过行列式的计算代码,今天正好碰到此类问题,所以进行了代码实现。

目前未发现此代码漏洞,如发现漏洞,欢迎交流。

 

基于对角线法计算行列式的代码实现

基本原理:(参考(3条消息) 行列式的计算方法(含四种,看完就会!)_肖前辉爱吃烧茄子的博客-CSDN博客_行列式的计算方法icon-default.png?t=M3K6https://blog.csdn.net/weixin_46664967/article/details/113621821

 

代码实现图片如下:

内容:

void cal(){

    //原数组data m 行 n 列 当 m == n ,计算行列式

    for(int i = 0;i < m; ++i)

      for(int j = 0;j < n; ++j){

         num[i][j] = data[i][j];

         num[i][j + n] = num[i][j];

      }//开到了2 * n - 1列多出来的一列别管

    int res = 0,ans = 0,tmp = 1;

    //计算红色线

    for(int j = 0;j < n; ++j){

      for(int i = 0;i < m; ++i){

         tmp *= num[i][j+i];//列和次数的关系

      }

      res += tmp;tmp = 1;

    }

    //计算蓝色线

    for(int j = 0;j < n; ++j){

      for(int i = 0;i < m; ++i){

         tmp *= num[m-i-1][j+i];

      }

      ans += tmp; tmp = 1;

    }

   

    cout<<res - ans<<endl;//输出行列式的值

}

简单验证:

 

 

举报

相关推荐

0 条评论