Python遞歸求矩陣的行列式

爲了感受Python的列表生成器的威力,寫了個簡單的程序——遞歸求矩陣的行列式,效率可能沒numpy高,歡迎各位指正。

def det(m):
    if len(m) <= 0:
        return None
    if len(m) == 1:
        return m[0][0]
    else:
        s = 0
        for i in range(len(m)):
            n = [[row[a] for a in range(len(m)) if a != i] for row in m[1:]]
            if i % 2 == 0:
                s += m[0][i] * det(n)
            else:
                s -= m[0][i] * det(n)
        return s

使用列表生成器使得求剩餘矩陣變得異常簡單,再次被Python優美的語法震撼到了。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章