用行列式的定义方法求解行列式的值,方法肯定不是最简单的,但是觉得有趣。其中要用到全排列的递归算法、逆序数的算法

#include<iostream>
using namespace std;
const int n = 3;                    //n为行列式的阶数
int z[6][n];                                //6为全排列数即n!
int pow(int x, int y);                      //运算x的y次方
int against(int a[]);                       //求数组a的逆序数
int fac(int a);                                //运算a!
void swap(int a[], int i, int j);           //交换a[i]和a[j]
void perm(int a[], int p, int q);           //将n个数的所有排列储存进二维数组中
int main()
{int a[n][n];int d[n];                                    //用于储存行数(列数)for (int i = 0; i < n; i++){d[i] = i;}for (int i = 0; i < n; i++){for (int j = 0; j < n; j++){cout << "Please input a[" << i << "]" << "[" << j << "]" << "=";cin >> a[i][j];cin.get();}}perm(d, 0, n - 1);int s;int m = 0;for (int i = 0; i < fac(n); i++)                        //第一重循环控制排列个数,或加法的个数    {s = 1;                                              //运用行列式定义求出行列式的值for (int j = 0; j < n; j++)                         //第二重循环控制阶数,或乘法的个数{s = s*a[j][z[i][j]];}m = m + pow(-1, against(z[i]))*s;}for (int i = 0; i < n; i++){for (int j = 0; j < n; j++){printf("%3d", a[i][j]);                        //为使结构整齐使用C中的printf}cout << endl;}cout << "The value of det is " << m << endl;cin.get();
}
int pow(int x, int y)
{int s = 1;for (; y >= 1; y--)s = s*x;return s;
}
int fac(int a)
{int s = 1;for (; a >= 1; a--)s = s*a;return s;
}
int against(int a[])
{int nn = 0;for (int i = 0; i < n - 1; i++){for (int j = i + 1; j < n; j++){if (a[i] > a[j]){nn++;}else;}}return nn;
}
void swap(int a[], int i, int j)
{int temp;temp = a[i];a[i] = a[j];a[j] = temp;
}
void perm(int a[], int p, int q)
{static int g = 0;                                //防止g被初始化为0因此用static静态储存方式if (p == q)                                      //p==q时完成一次全排列{for (int i = 0; i < n; i++){z[g][i] = a[i];}g++;}else{for (int i = p; i <= q; i++)                //用递归算法完成全排列{swap(a, p, i);perm(a, p + 1, q);swap(a, p, i);}}
}

​​​​​​​​​​​​​​我的博客:矩阵空间​​​​​​​

用行列式的定义方法求解n阶行列式的值(C++)相关推荐

  1. 线性代数 01.01 n阶行列式的定义

    第一章行列式 \color{blue}{第一章 行列式} 主要介绍n阶行列式的定义.性质及计算方法. 主要介绍n阶行列式的定义.性质及计算方法. 介绍用n阶行列式求解n元线性方程组的克拉默(Crame ...

  2. TensorFlow学习笔记--第三节张量(tensor)及其定义方法

    目录 在TensorFlow中,所有的数据通过张量的形式来表示 1张量及属性: 1.1维数(阶) 1.2 形状 1.3数据类型 TensorFlow 支持以下三种类型的张量: **1.常量** **2 ...

  3. 蓝桥杯 算法训练 ALGO-932低阶行列式计算 python解法

    资源限制 内存限制:64.0MB   C/C++时间限制:1.0s   Java时间限制:3.0s   Python时间限制:5.0s 问题描述 给出一个n阶行列式(1<=n<=9),求出 ...

  4. 使用scheme语言实现n阶行列式值的计算

    利用递归计算代数余子式(的值)的思想通过scheme语言来求算n阶行列式的值. <线性代数>第六版同济大学第1章第5节介绍了行列式按行(列)展开的方法,其中提到: 引理: 一个n阶行列式, ...

  5. 求解n阶方阵的行列式

    本文是对姜老师讲解的公式法求解行列式的详述,以及非递归的全排列算法的个人转述. 1.公式法 理解行列式公式法的,可以跳过该部分 行列式(determinant)的定义公式如下图所示,截图来源Deter ...

  6. 线性代数学习笔记——行列式的性质及拉普拉斯定理——2. n阶行列式的定义

    1. 二.三阶行列式的规律观察 2. n阶行列式的定义 3. 行列式与矩阵的区别与联系

  7. (邱维声)高等代数课程笔记:n 阶行列式的定义

    2.2 n 阶行列式的定义 \quad 在 上一节,我们已经定义了 二阶行列式,并根据二阶行列式的特征,抽象出了 n 元排列 的概念.举一个示例,可以看到:二阶行列式可以通过二元排列表示. 例 1: ...

  8. 用c语言求解n阶线性矩阵方程组,用C语言求解N阶线性矩阵方程Axb简单解法.docx

    用C语言求解N阶线性矩阵方程Axb简单解法 用C语言求解N阶线性矩阵方程Ax=b的简单解法一.描述问题:题目:求解线性方程组Ax=b,写成函数.其中,A为n×n的N阶矩阵,x为需要求解的n元未知数组成 ...

  9. n阶行列式计算----c语言实现(完结)

    花了半天时间,写了这个n阶行列式计算的程序,应该算是比较优美吧,有很多地方多次做了优化,程序占用内存不是很大,要是说小吧,也不合适,因为里边有一个递归,而且递归的深度还比较深.时间复杂度具体没有细看, ...

最新文章

  1. 独家 | 构建符合道德规范的用于人才管理的AI(附链接)
  2. 结构体对齐原理【转】
  3. windbg查看设备栈设备树学习总结
  4. (十二)java版电子商务spring cloud分布式微服务- Spring 4.2.2以上版本和swagger集成方案和踩过的坑...
  5. Java字符串、文件MD5工具类
  6. html 常用的标签
  7. java 编译 器 ide_在没有IDE的情况下编译和运行Java
  8. 6.4. Test::More
  9. 1.10 编程基础之简单排序 10 单词排序 python
  10. latex 插图排版
  11. Ubuntu16.04安装为知笔记(WizNote)
  12. 数据结构——顺序表的C语言代码实现
  13. ev3pid巡线_基于LEGO使用PID算法进行单光巡线机器人设计的心得体会
  14. js生成java uuid_JS生成UUID
  15. TV_Control Android机顶盒手机控制全套程序开源
  16. 人际关系差不能当跳槽理由,原因在这里
  17. 实例003 输出名言
  18. (10)python中的赋值方法
  19. 美国互联网影视的盈利模式 —— Netflix模式
  20. 牛客 小米校招 计算题 单调栈 接雨水

热门文章

  1. docker删除容器
  2. c语言char str什意思,C语言中,charstr的str到底表示什么?
  3. 测试人生 | 为了娃的奶粉钱,测试媛妈妈拿出考研的拼劲,半年终圆大厂梦!
  4. Integrated Skills of English_Unit2_Why My Great-uncle Gave Up the Ministry
  5. 运动耳机品牌排行榜有哪些,排行前五的运动耳机推荐
  6. 一政网给了我公考上岸的机会
  7. Linux怎么完全删除一个用户
  8. icon小图标的使用
  9. 成功8要素Unveiling the Secrets of success in 8 words – Richard St. John’s 4 minute TED talk
  10. 电脑黑屏无法启动怎么办