每日kata~14~Matrix Determinant

題目

Write a function that accepts a square matrix (N x N 2D array) and returns the determinant of the matrix.

How to take the determinant of a matrix -- it is simplest to start with the smallest cases:

A 1x1 matrix |a| has determinant a.

A 2x2 matrix [ [a, b], [c, d] ] or

|a  b|
|c  d|

has determinant: ad - bc.

The determinant of an n x n sized matrix is calculated by reducing the problem to the calculation of the determinants of n matrices ofn-1 x n-1 size.

For the 3x3 case, [ [a, b, c], [d, e, f], [g, h, i] ] or

|a b c|  
|d e f|  
|g h i|  

the determinant is: a * det(a_minor) - b * det(b_minor) + c * det(c_minor) where det(a_minor) refers to taking the determinant of the 2x2 matrix created by crossing out the row and column in which the element a occurs:

|- - -|
|- e f|
|- h i|  

Note the alternation of signs.

The determinant of larger matrices are calculated analogously, e.g. if M is a 4x4 matrix with first row [a, b, c, d], then:

det(M) = a * det(a_minor) - b * det(b_minor) + c * det(c_minor) - d * det(d_minor)

看了半天才看明白題茴肥,求矩陣行列式

def determinant(matrix):
    res = 0
    l = len(matrix)
    if l==1:
        res = matrix[0][0]
    elif l==2:
        res = matrix[0][0]*matrix[1][1]-matrix[0][1]*matrix[1][0]
    else:
        for i in range(0,l):
            sub_matrix = []
            sub_matrix = [m[0:i]+m[i+1:] for m in matrix[1:]]
            res += matrix[0][i]*(-1)**i*determinant(sub_matrix)

    return res

遞歸 & 切片坚踩!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市瓤狐,隨后出現(xiàn)的幾起案子瞬铸,更是在濱河造成了極大的恐慌,老刑警劉巖芬首,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件赴捞,死亡現(xiàn)場離奇詭異,居然都是意外死亡郁稍,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進(jìn)店門胜宇,熙熙樓的掌柜王于貴愁眉苦臉地迎上來耀怜,“玉大人,你說我怎么就攤上這事桐愉〔破疲” “怎么了?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵从诲,是天一觀的道長左痢。 經(jīng)常有香客問我,道長系洛,這世上最難降的妖魔是什么俊性? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮描扯,結(jié)果婚禮上定页,老公的妹妹穿的比我還像新娘。我一直安慰自己绽诚,他們只是感情好典徊,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布杭煎。 她就那樣靜靜地躺著,像睡著了一般卒落。 火紅的嫁衣襯著肌膚如雪羡铲。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天儡毕,我揣著相機(jī)與錄音犀勒,去河邊找鬼。 笑死妥曲,一個胖子當(dāng)著我的面吹牛贾费,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播檐盟,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼褂萧,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了葵萎?” 一聲冷哼從身側(cè)響起导犹,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎羡忘,沒想到半個月后谎痢,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡卷雕,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年节猿,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片漫雕。...
    茶點(diǎn)故事閱讀 39,785評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡滨嘱,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出浸间,到底是詐尸還是另有隱情太雨,我是刑警寧澤,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布魁蒜,位于F島的核電站囊扳,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏兜看。R本人自食惡果不足惜锥咸,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望铣减。 院中可真熱鬧她君,春花似錦、人聲如沸葫哗。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至校镐,卻和暖如春亿扁,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背鸟廓。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工从祝, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人引谜。 一個月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓牍陌,卻偏偏與公主長得像,于是被迫代替她去往敵國和親员咽。 傳聞我的和親對象是個殘疾皇子毒涧,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評論 2 354

推薦閱讀更多精彩內(nèi)容