行列式(三):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),也建议记住这个行列式的结论. 当然不仅仅 ...
随机推荐
- 从为什么String=String谈到StringBuilder和StringBuffer
前言 有这么一段代码: public class TestMain { public static void main(String[] args) { String str0 = "123 ...
- JavaScript思维导图—数组
JavaScript思维导图-来自@王子墨http://julying.com/blog/the-features-of-javascript-language-summary-maps/
- [异常解决] android studio检测不到手机的解决办法——ADB驱动自己安装
用android studio搭建安卓开发环境比eclipse简单的多,仅仅下载一个1个G左右的安装包安装即可. 安装好之后随便建一个hello world工程,想用实体手机调试要点: 选择USB设备 ...
- Android Fragment add/replace以及backstack
无论Fragment以何种方式加入,都不会影响backstack,backstack由addToBackStack函数决定,只有调用了这个函数,才会将Fragment加入返回栈.这个说法其实不太准确, ...
- 贫下中农版jQuery
之前写过一篇JavaScript命名空间的文章,写完后一对比对jQuery的简单使用很是惊羡,看了看人家源码,用的原理很类似啊,改进一下之前的版本,做个简易版的jQuery 之前的代码 (functi ...
- Linux gcc的安装
说明:我是在虚拟机里学习的Linux,很多问题也是和虚拟机有关的.今天就遇到了虚拟机安装gcc是一个问题. 首先查看gcc是否安装: 然后安装gcc.(我的错误就出现在这里.) 我用的虚拟机,练习平时 ...
- 我的ef连接mysql之旅
摘要: install-package ef6,mysql.data:增加provider invariantName="MySql.Data.MySqlClient" typ ...
- ios NSFileManager和NSFileHandle(附:获取文件大小 )
转自 http://blog.csdn.net/zhibudefeng/article/details/7795946 //file 文件操作 NSFileManager 常见的NSFileMana ...
- WebApi系列~通过HttpClient来调用Web Api接口~续~实体参数的传递
回到目录 上一讲中介绍了使用HttpClient如何去调用一个标准的Web Api接口,并且我们知道了Post,Put方法只能有一个FromBody参数,再有多个参数时,上讲提到,需要将它封装成一个对 ...
- ScrollView 里的 EditText 与输入法的用例
情景是这样的: 我希望页面可以滚动,因为长页面,内容多,必须滚动来满足不同手机的显示 点击 EditText 输入法弹出来,并将布局顶起来,并且EditText有足够的显示空间 进入页面时,输入法不能 ...