我想寫一個遞歸函數來計算矩陣乘法。計算矩陣乘法的遞歸函數
編輯:
這是代碼:
def mult_mat(x, nbr):
result = [[2, 4],
[1, 3]]
if nbr == 1:
return result
else:
for i in range(len(x)):
for j in range(len(result[0])):
for k in range(len(result)):
result[i][j] += x[i][k] * result[k][j]
mult_mat(result, nbr-1)
return result
m = [[2, 4],
[1, 3]]
# the number of times m1 will be multiplied
n = 3
res = mult_mat(m, n)
for r in res:
print(r)
舉個例子,對於n = 3
我試圖得到的結果:
m1 * m1
將[[8, 20], [5, 3]] = result
和result * m1
會[[36, 92], [23, 59]]
等。
這段代碼的輸出是:
[10, 24]
[44, 108]
,我想這是什麼:
[36, 92]
[23, 59]
你忘了告訴我們問題是什麼。 – timgeb
快速瀏覽一下,你的函數返回'result',但是當你遞歸的時候,你會把它作爲'y'傳遞,這是沒有修改的。 – Reti43
你也是迭代和遞歸。大概你想做一個或另一個,但不是兩個。 –