【算法题】矩阵行列式
请写出函数,接收一个 N 行 N 列的方阵并返回这个矩阵的行列式.
如何计算一个矩阵的行列式呢?让我们从最简单的情况开始:
一个 1 x 1 的矩阵 |a|
的行列式等于它自己 a
.
一个 2 x 2 的矩阵 [[a, b], [c, d]] 或者
|a b|
|c d|
行列式为a*d - b*c
.
对于一个 n x n 大小的矩阵,其行列式的计算方式为将问题简化成计算 (n-1) x (n-1) 大小的矩阵的行列式.
对于 3 x 3 的情况, [[a, b, c], [d, e, f], [g, h, i]] 或者
|a b c|
|d e f|
|g h i|
行列式计算方式为: a * det(a_minor) - b * det(b_minor) + c * det(c_minor)
其中 det(a_minor) 的意思是划去 a 所在的行和列的所有元素后剩下来的部分组成的矩阵的行列式:
|- - -|
|- e f|
|- h i|
较大矩阵的行列式的计算方法也类似,例如,如果 M 是一个 4 x 4 的矩阵且第一行为 [a, b, c, d],那么:
det(M) = a * det(a_minor) - b * det(b_minor) + c * det(c_minor) - d * det(d_minor)
下面给出函数的开头部分:
def determinant(matrix):
#your code here
上期答案:
def anagrams(word, words):
return [i for i in words if sorted(word) == sorted(i)]
来做题小老妹
优秀鸭小老弟