行列式(三):n阶行列式
1.数学定义
n阶行列式定义如下:

2.算法实现
函数名: GetValue()
功能:返回一个行列式的值
Private Function GetValue()
Dim gValue As Double
Dim tempResultList As New List(Of Array)
) As Integer '要进行全排列的序列
tempNumArray(i) = i
Next
GetFullPerm(tempNumArray, , tempResultList)
Dim temp As Double
Dim tempData() As Integer
temp =
tempData = tempResultList(i)
temp = temp * TableData(j, tempData(j))
Next
temp = Math.Pow(-, GetInverseNum(tempData)) * temp
gValue += temp
Next
Return gValue
End Function
3.完整的行列式类(determinant)
使用示例:
Dim d As New Determinant(3)
d.Item(1, 1) = 1
d.Item(2, 2) = 2
d.Item(3, 3) = 4
Console.write(d.value)
Public Class Determinant
Private TableData(,) As Double
Private RankLength As Integer
'行列式的阶
Public ReadOnly Property Rank()
Get
Return RankLength
End Get
End Property
'行列式第iRow行第iCol列的元素
Public Property Item(ByVal iRow As Integer, ByVal iCol As Integer)
Get
, iCol - )
End Get
Set(ByVal value)
TableData(iRow - , iCol - ) = value
End Set
End Property
Public ReadOnly Property value()
Get
Return GetValue()
End Get
End Property
Public Sub New(ByVal nRank As Integer)
, nRank - ) As Double
TableData = tempArray
RankLength = nRank
End Sub
'求行列式的值
Private Function GetValue()
Dim gValue As Double
Dim tempResultList As New List(Of Array)
) As Integer '要进行全排列的序列
tempNumArray(i) = i
Next
GetFullPerm(tempNumArray, , tempResultList)
Dim temp As Double
Dim tempData() As Integer
temp =
tempData = tempResultList(i)
temp = temp * TableData(j, tempData(j))
Next
temp = Math.Pow(-, GetInverseNum(tempData)) * temp
gValue += temp
Next
Return gValue
End Function
'全排列
Private Sub GetFullPerm(ByVal NumArray() As Integer, ByVal LeftIndex As Integer, ByRef Result As List(Of Array))
Dim temp As Integer
Then
) As Integer
NumArray.CopyTo(tempArray, )
Result.Add(tempArray)
Else
temp = NumArray(LeftIndex)
NumArray(LeftIndex) = NumArray(i)
NumArray(i) = temp '对换
GetFullPerm(NumArray, LeftIndex + , Result)
NumArray(i) = NumArray(LeftIndex)
NumArray(LeftIndex) = temp '还原对换
Next
End If
End Sub
'逆序数
Private Function GetInverseNum(ByVal NumArray() As Integer)
Next
Next
Return Num
End Function
End Class
行列式(三):n阶行列式的更多相关文章
- 基于上三角变换或基于DFS的行(列)展开的n阶行列式求值算法分析及性能评估
进入大一新学期,看完<线性代数>前几节后,笔者有了用计算机实现行列式运算的想法.这样做的目的,一是巩固自己对相关概念的理解,二是通过独立设计算法练手,三是希望通过图表直观地展现涉及的两种算 ...
- C#程序计算N阶行列式的值及N元一次方程组
C#程序计算N阶行列式的值及N元一次方程组 用了挺长时间自行完成了C#程序计算N阶行列式的值及N元一次方程组.由于自己没有在网上查阅其他资料,所以只能硬着头皮用最朴素的思想和基础的算法进行编程.在给出 ...
- n阶行列式计算----c语言实现(完结)
花了半天时间,写了这个n阶行列式计算的程序,应该算是比较优美吧,有很多地方多次做了优化,程序占用内存不是很大,要是说小吧,也不合适,因为里边有一个递归,而且递归的深度还比较深.时间复杂度具体没有细看, ...
- 线代: N阶行列式
线性变换 将 (x, y) 变成 (2 x + y, x - 3 y) 就叫做线性变换, 这就是矩阵乘法, 用于表示一切线性变换. 几何上看, 把平面上的每个点 (x, y) 都变到 (2 x + y ...
- TOJ4537: n阶行列式
4537: n阶行列式 Time Limit(Common/Java):1000MS/3000MS Memory Limit:65536KByteTotal Submit: 28 ...
- Herding(hdu4709)三点运用行列式求面积
Herding Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- n阶行列式算法(c程序)
#include<stdio.h> #include<math.h> #define N 100 //N比输入的阶数大即可 int main() { int n,a[N][ ...
- 计算n阶行列式的模板
之前在学习计数问题的时候也在网上找了很多关于行列式的资料 但是发现很多地方都只介绍2\3阶的情况 一些论文介绍的方法又看不懂 然后就一直耽搁着 今天恰好出到这样的题目 发现标算的代码简介明了 还挺开心 ...
- n阶行列式计算
1.化为上下三角 该类型的矩阵.行列式在之前写过(https://www.cnblogs.com/wangzheming35/p/12906624.html),也建议记住这个行列式的结论. 当然不仅仅 ...
随机推荐
- ASP.NET MVC请求处理管道生命周期的19个关键环节(1-6)
ASP.NET和ASP.NET MVC的HttpApplication请求处理管道有共同的部分和不同之处,本系列将体验ASP.NET MVC请求处理管道生命周期的19个关键环节. ①以IIS6.0为例 ...
- Entity Framework 5.0系列之自动生成Code First代码
在前面的文章中我们提到Entity Framework的"Code First"模式也同样可以基于现有数据库进行开发.今天就让我们一起看一下使用Entity Framework P ...
- html嵌套MP4、PDF的简单方案
你需要一个jquery.media插件,http://malsup.com/jquery/media/ 然后: <html><head><script src=" ...
- C++ 引用
本文主要记录了C++中的引用特性,总结了一下代码示例和错误. 简单的引用 引用是C++的特性,指针是C语言的特性.上面代码结果如下: 20 20 100 20 true 引用和被引用的对象是占用同一个 ...
- linnux 3
kill [信号代码] 进程ID 以优雅的方式结束进程# kill -l PID-l选项告诉kill命令用好像启动进程的用户已注销的方式结束进程.当使用该选项时,kill命令也试图杀死所留下的子进程. ...
- 每天一个linux命令(58):telnet命令
telnet命令通常用来远程登录.telnet程序是基于TELNET协议的远程登录客户端程序.Telnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式.它为用户 ...
- Yii 框架学习--02 进阶
应用结构 入口文件 文件位置: web/index.php <?php //开启debug,应用会保留更多日志信息,如果抛出异常,会显示详细的错误调用堆栈 defined('YII_DEBUG' ...
- Atitit 游戏的通常流程 attilax 总结 基于cocos2d api
Atitit 游戏的通常流程 attilax 总结 基于cocos2d api 加载音效1 加载页面1 添加精灵1 设置随机位置2 移动2 垃圾gc2 点击evt2 爆炸效果3 定时生成精灵3 加载音 ...
- salesforce 零基础学习(二十七)VF页面等待(loading)效果制作
进行查询的情况下,显示友好的等待效果可以让用户更好的了解目前的状态以及减少用户消极的等待,例如下图所示. VF提供了<apex:actionStatus>标签,,此标签用于显示一个AJAX ...
- 对于System.Net.Http的学习(二)——使用 HttpClient 进行连接
对于System.Net.Http的学习(一)——System.Net.Http 简介 使用 HttpClient 进行连接 使用 System.Net.Http 命名空间中的 HttpClient ...