zoukankan      html  css  js  c++  java
  • Python实现行列式计算

    数学公式:
      


    代码:
    # 逆序数
    def getInversion(numlist):
        count = 0
        for i in range(1,len(numlist)):
            subscript = numlist[i]
            for j in range(i):
                if subscript < numlist[j]:
                    count += 1
        return count
    D = 0
    # 全排列,求每项的积
    def permutation(dd,ilist,jlist,index):
        global D
        for i in range(index,len(jlist)):
            if index == len(jlist)-1:
                term = 1
                for ii in range(len(ilist)):
                    i = ilist[ii]
                    j = jlist[ii]
                    term *= dd[i][j]
                if getInversion(jlist) % 2 == 0:
                    D += term
                else:D -= term
                return
            tmp = jlist[index]
            jlist[index] = jlist[i]
            jlist[i] = tmp
            permutation(dd,ilist,jlist,index+1)
            tmp = jlist[index]
            jlist[index] = jlist[i]
            jlist[i] = tmp
    
    if __name__ == '__main__':
        dd = [[1, 2, -4], [-2, 2, 1], [-3, 4, -2]]
        dd =[[1,1,1,1],[-1,2,1,3],[1,4,1,9],[-1,8,1,27]]
        jlist = []
        ilist = []
        for ii in range(len(dd)):
            ilist.append(ii)
            jlist.append(ii)
        permutation(dd,ilist,jlist,0)
        print(D)
    

      

  • 相关阅读:
    百度地图地址解析/逆地址解析
    Oracle表空间创建要点
    dubbo——providers
    dubbo——常用标签属性
    dubbo——spring初始化
    dubbo——RPC
    mybatis——datasource
    redis——再补充
    mybatis——缓存
    mybatis——Executor
  • 原文地址:https://www.cnblogs.com/qingkongwuyun/p/10267244.html
Copyright © 2011-2022 走看看