首页 > 其他分享 >行列式计算

行列式计算

时间:2024-09-26 22:25:59浏览次数:1  
标签:right matrix ll cdots 行列式 计算 vdots

以下用的是代数余子式计算行列式
数学结论:行列式等于它任意一行(列)的各元素与其对应的代数式余子式乘积之和。

\[\left|\begin{matrix} a_{11} & a_{12} & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{2n} \\ \vdots & \vdots & \vdots & \vdots \\ a_{n1} & a_{n2} & \cdots & a_{nn} \end{matrix} \right| = (-1)^{1 + 1}a_{11} \left|\begin{matrix} a_{22} & a_{23} & \cdots & a_{2n} \\ \vdots & \vdots & \vdots & \vdots \\ a_{n2} & a_{n3} & \cdots & a_{nn} \end{matrix} \right| + (-1)^{1 + 2}a_{12} \left|\begin{matrix} a_{21} & a_{23} & \cdots & a_{2n} \\ \vdots & \vdots & \vdots & \vdots \\ a_{n1} & a_{n3} & \cdots & a_{nn} \end{matrix} \right| + \cdots + (-1)^{1 + n}a_{1n} \left|\begin{matrix} a_{21} & a_{22} & \cdots & a_{2n-1} \\ \vdots & \vdots & \vdots & \vdots \\ a_{n1} & a_{n2} & \cdots & a_{nn-1} \end{matrix} \right| \]

所以,我们可以直接默认取第一行与其对应的代数余子式的乘积之和,利用递归求出行列式的值。

代码

#include <iostream>

using namespace std;

typedef long long ll;

const int N = 10;

ll a[N][N];

ll cal(ll a[N][N], int n)
{
    if (n == 1) return a[1][1]; // 1行1列直接返回该值
    ll res = 0;
    for (int t = 1; t <= n; t ++) // 枚举第1行的每一列
    {
        ll na[N][N] = {}; // 余子式 
        for (int i = 2, ri = 1; i <= n; i ++, ri ++) // 从第2行开始枚举 
            for (int j = 1, cj = 1; j <= n; j ++, cj ++) // 枚举每一列,除和第一行同一列的数 
            {
                if (j == t) continue; // 同列不选
                na[ri][cj] = a[i][j]; 
            }
        res += (t % 2 ? 1 : -1) * a[1][t] * cal(na, n - 1); // 将每个代数余子式求和,同时递归求余子式
    } 
    return res; 
}

int main()
{
    int n;
    cin >> n;
    
    for (int i = 1; i <= n; i ++)
        for (int j = 1; j <= n; j ++)
            cin >> a[i][j];
    
    cout << cal(a, n);
    
    return 0;
}

标签:right,matrix,ll,cdots,行列式,计算,vdots
From: https://www.cnblogs.com/Natural-TLP/p/18434555

相关文章

  • 基于Node.js+vue基于java的校园疫情管理系统(开题+程序+论文) 计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景近年来,全球范围内频繁爆发的疫情事件对教育领域产生了深远影响,特别是在校园环境中,如何有效防控疫情、保障师生健康安全成为了亟待解决的问题。传统的校园管......
  • 基于Node.js+vue基于springboot的模拟面试平台7tch0(开题+程序+论文) 计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景随着信息技术的飞速发展和互联网应用的广泛普及,传统的招聘模式正逐步向数字化、智能化转型。面试作为招聘流程中的关键环节,其效率与效果直接影响到企业的人......
  • 基于Node.js+vue在线考试系统(开题+程序+论文) 计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景随着互联网技术的迅猛发展和普及,教育领域正经历着深刻的变革。传统考试模式受限于时间、地点和资源的限制,已难以满足现代教育的多元化需求。在线考试系统作......
  • 【2024计算机毕业设计】基于jsp+mysql的JSP在线水果超市商城
    运行环境:最好是javajdk1.8,我在这个平台上运行的。其他版本理论上也可以。IDE环境:Eclipse,Myeclipse,IDEA或者SpringToolSuite都可以,如果编译器的版本太低,需要升级下编译器,不要弄太低的版本tomcat服务器环境:Tomcat7.x,8.x,9.x版本均可操作系统环境:WindowsXP/7......
  • Python工程和科学计算1简介
    1简介本章简要介绍了Python编程语言的可扩展性、应用领域和功能。如果您需要在科学工作中进行大量计算,并希望以图形化的方式呈现计算结果,那么您应该认真考虑使用Python。Python是一种编程语言,其功能与MATLAB相似,且是科学计算目前用户最多的首选语言。1.1开发环境1.1.1......
  • 基于nodejs+vue校园新闻网站[开题+源码+程序+论文]计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景随着信息技术的飞速发展,互联网已成为人们获取信息、交流思想的重要平台。在高校环境中,信息的及时传播与共享对于促进学术交流、增强校园文化氛围、提升学生......
  • 基于nodejs+vue校园新闻网站[开题+源码+程序+论文]计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景随着信息技术的飞速发展和互联网的普及,校园信息化建设已成为提升教育质量、促进校园文化交流的重要途径。在当前数字化时代背景下,校园新闻作为连接师生、传......
  • 基于nodejs+vue校园学生会管理系统[开题+源码+程序+论文]计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景在当今数字化、信息化高速发展的时代,校园管理正逐步向智能化、高效化转型。学生会作为连接学校与学生之间的重要桥梁,其管理效率与服务质量直接影响到学生活......
  • Linux云计算 |【第四阶段】NOSQL-DAY2
    主要内容:Redis集群概述、部署Redis集群(配置manage管理集群主机、创建集群、访问集群、添加节点、移除节点)一、Redis集群概述1、集群概述所谓集群,就是通过添加服务器的数量,提供相同的服务,从而让服务器达到一个稳定、高效的状态;而单个Redis服务运行存在不稳定性,当Redis服务......
  • java+vue计算机毕设毕业设计过程化管理系统【源码+程序+论文+开题】
    本系统(程序+源码)带文档lw万字以上文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着高等教育规模的不断扩大和教育信息化进程的加速,毕业设计作为培养学生实践能力、创新能力和综合素质的重要环节,其管理过程日益复杂。传统的手工或......