行列式(三):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),也建议记住这个行列式的结论. 当然不仅仅 ...
随机推荐
- 走进AngularJs(八) ng的路由机制
在谈路由机制前有必要先提一下现在比较流行的单页面应用,就是所谓的single page APP.为了实现无刷新的视图切换,我们通常会用ajax请求从后台取数据,然后套上HTML模板渲染在页面上,然而a ...
- 字符串查找String.IndexOf
String.indexOf的模拟实现,没想象中有多么高深的查找算法,就是最普通的遍历查找 思路:先找到第一个相同的字符,然后依次比较后面的字符,若都相等则表示查找成功 /** * 查找字符串patt ...
- MYSQL分页存储过程及事务处理
最近给客户做的一小系统是SQLSERVER的数据库,因为特殊原因要切换到MYSQL上去,切换数据库确实让人头疼的,SQLSERVER和MYSQL的存储过程还是有很大差别的,下面是我做切换时转换的MYS ...
- Ubuntu 下配置Ganglia监控
Ganglia是比较知名的开源监控系统, 运维上需要关注的一些通用的状态都有所涉及.其组成主要是gmond(监控程序),gmetad(信息收集程序),web(监控数据展现app).ubuntu的apt ...
- java.sql.SQLException: JZ00L
出现, java.sql.SQLException: JZ00L: 登录失败.检查与此异常现象有关的 SQL 警告以获得失败原因. at com.sybase.jdbc3.jdbc.ErrorMess ...
- Bootstrap~多级导航(级联导航)的实现
回到目录 在bootstrap官方来说,导航最多就是两级,两级以上是无法实现的,大叔找了一些第三方的资料,终于找到一个不错的插件,使用上和效果上都还不错,现在和大家分享一下 插件地址:http://v ...
- WindowManager 实现悬浮窗 详解
WindowManager 实现悬浮窗 详解 一:对于想直接看效果的,可以看看我的demo app. 链接:http://sj.qq.com/myapp/detail.htm?apkName=com. ...
- [Java面试四]Strust2总结及在面试中的一些问题.
1. JavaEE软件三层结构和MVC的区别? JavaEE软件三层机构是由sun公司提供JavaEE开发规范的:Web层(表现层).业务逻辑层.数据持久层.[其中WEB层会使用前端控制器模式] MV ...
- [Spring框架] Spring中的 ContextLoaderListener 实现原理.
前言: 这是关于Spring的第三篇文章, 打算后续还会写入AOP 和Spring 事务管理相关的文章, 这么好的两个周末 都在看code了, 确实是有所收获, 现在就来记录一下. 在上一篇讲解Spr ...
- ASP.NET MVC的Action拦截器(过滤器)ActionFilter
有时项目要进行客户端请求(action)进行拦截(过滤)验证等业务,可以使用拦截器进行实现,所谓的action拦截器也没有什么的,只是写一个类,继承另一个类(System.Web.Mvc.Filter ...