CloudCoder Python feladatgyujtemeny/matrix szorzas

A MathWikiből

A hiba az, hogy a kimeneti mátrix második dimenziója len(B) helyett len(B[0]) kéne hogy legyen, tehát az hogy a B mátrix sorai milyen hosszúak. Ezt két helyen is át kell javítani, egyrészt az üres mátrix létrehozásánál, másrészt a for ciklusnál. Így a végleges, javított kód:

def matrix_szorzas(A, B):
    # Eloszor megalkotjuk a visszaadando matrixot csupa 0 elemmel
    ret = [[0 for j in range(len(B[0]))] for i in range(len(A))]
 
    # majd minden (i, j) elemen vegigmegyunk
    for i in range(len(A)):
        for j in range(len(B[0])):
            # Es hozzaadjuk a megfelelo szorzatokat
            for k in range(len(B)):
                ret[i][j] += A[i][k] * B[k][j]
 
    # Visszaterunk az igy vegleges matrixszal
    return ret
Személyes eszközök