行列式求解

     

行列式 

给出一个矩阵求 行列式。

输入:  
1
3
1 -2 -1
0 3 2
3 1 -1

思路:

不能直接乘上上面行的倍数来消除本行对应元素。试试辗转相减法把。

(1,3)减去2倍(0,1)->(1,0)

(5,3)减去0倍(3,5)减去1倍(2,3)减去1倍(1,2)减去2倍(0,1)->(1,0)

然后每次检查上面行的元素是否为0,然后换回来就行了

#include <bits/stdc++.h>
using namespace std;
const int mod=0x1f1f1f1f;
typedef long long ll;
ll t,n,a[10][10];
ll solve(){//计算行列式,化简成下三角型(有点类似辗转相除法)
	ll res=1,w=1;//res是结果,w是符号
	for(int i=1;i<=n;i++){//对[i][i]元素所在的列处理
		for(int j=i+1;j<=n;j++){
//我们每次都让下面的行减去上面行的a[j][i]/a[i][i]倍,然后再让最小的行放到上面判断是不是[i][i]是不是0,如果不是就继续。
			while(a[i][i]){
				ll di=a[j][i]/a[i][i];
				for(int k=i;k<=n;k++){
					a[j][k]=(a[j][k]-di*a[i][k]%mod+mod)%mod;//有负数的话要加一次mod
				}
				swap(a[i],a[j]);
				w=-w;
			}
			swap(a[i],a[j]);
			w=-w;
		}
	}
		for(int i=1;i<=n;i++)
			res=a[i][i]*res%mod;
		res=w*res;
		return (res+mod)%mod;	
}

int main(){
	cin>>t;
	while(t--){
		cin>>n;
		for(int i=1;i<=n;i++)
			for(int j=1;j<=n;j++)
			cin>>a[i][j];
		cout<<solve()<<'\n';
	}	
}

        

相关推荐

  1. 行列式求解

    2024-04-30 15:32:05       14 阅读
  2. 六、行列式基本知识

    2024-04-30 15:32:05       30 阅读
  3. 摆(行列式、杜教筛)

    2024-04-30 15:32:05       24 阅读
  4. C语言计算三阶行列式

    2024-04-30 15:32:05       42 阅读
  5. 高等代数复习:应试经验:求行列式

    2024-04-30 15:32:05       20 阅读
  6. 质数的求解方法

    2024-04-30 15:32:05       45 阅读
  7. 代码求解方程

    2024-04-30 15:32:05       43 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-30 15:32:05       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-30 15:32:05       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-30 15:32:05       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-30 15:32:05       20 阅读

热门阅读

  1. YOLOv8+bytetrack实现多目标追踪

    2024-04-30 15:32:05       13 阅读
  2. 生成能够精确匹配原字符串的正则表达式

    2024-04-30 15:32:05       14 阅读
  3. zynq基础知识学习(1)

    2024-04-30 15:32:05       11 阅读
  4. 【软测学习笔记】Linux入门Day01

    2024-04-30 15:32:05       10 阅读
  5. 点云和去噪

    2024-04-30 15:32:05       19 阅读
  6. K8S集群安装

    2024-04-30 15:32:05       10 阅读
  7. Android APP转成launcher

    2024-04-30 15:32:05       13 阅读
  8. Linux第六章

    2024-04-30 15:32:05       16 阅读