行列式
, 1), Left$(s, i - 1) & Mid$(s, i + 1), str
Next i
End Sub
(英文) Michael Artin, Algebra; Henri Cartan, Cours de calcul différentiel, Paris, Hermann, 1977 ; Pierre Gabriel, Matrices, géométrie, algèbre linéaire维基百科
模块2
求逆序数 Option Explicit Option Base 1 Public n As Long, s As Long, str2 As String '//求存入a()数组排列为奇排列还偶排列如果为奇排列返回-1,偶排列返回1 Public Function arr(a() As Long, ByVal n As Long) As Integer Dim i As Long, j As Long, k As Long, m As Long For i = 1 To n - 1 m = i For j = m + 1 To n If a(i) > a(j) Then k = k + 1 Next Next arr = (-1) ^ k End Function模块3
递归法求阶乘 Option Explicit '//递归法求阶乘 Public Function JC(n As Long) As Double If n < 2 Then JC = 1: Exit Function JC = n * JC(n - 1) End Function基本控件如图

command1为计算command2为重试
推广到高阶行列式
以上代码只适用10阶一下行列式的计算,原因是限于模块1代码递归法求全排列只能对123....89求全排列但大于9就出现了两位数,不能再 返回其所要的全排列,但不是不能避免的,我们可以用单个字符来代替多位数,在返回全排列存入所需数组后再用ASCII 一一对应返回其数值,再进行计算,也许有人会说当我们用完所有字符怎么办呢,但100行列式我们要计算10000个数的全排列的逆序等,其计算量已是赫然10的160次方的大数,恐怕计算机也无能为力,再则那样实际意义已经不是很大!当然,我们可以开发更好程序去计算,毕竟知识是无界的! 本代码版权保留,仅供技术交流,不得用于商业用途!行列式的历史
行列式的概念最早是在17世纪由日本数学家关孝和提出来的,他在1683年写了一部名为解伏题之法的著作,意思是“解行列式问题的方法”,书中对行列式的概念和它的展开已经有了清楚的叙述。欧洲第一个提出行列式概念的是德国数学家,微积分学奠基人之一莱布尼茨。
些参考资料
(英文) Michael Artin, Algebra; Henri Cartan, Cours de calcul différentiel, Paris, Hermann, 1977 ; Pierre Gabriel, Matrices, géométrie, algèbre linéaire维基百科
上一篇:AutoCAD应用基础教程[ 06-03 ]
下一篇:空间折叠[ 06-03 ]





