Livre_silo 30 août 2013 16:32 Page 166
¨
©
¨
©
¨
©
¨
©
C o p y r i g h t E y r o l l e s
166
Informatique pour tous
PROGRAMME 3 Opérations élémentaires sur les matrices
def creer_matrice(n, p, v):
"""crée une nouvelle matrice de taille n x p,
initialisée avec la valeur v"""
return [[v] * p for i in range(n)]
def copie_matrice(m):
"""copie une matrice (mais pas ses éléments)"""
return [m[i][:] for i in range(len(m))]
def dimensions(m):
"""vérifie que m est bien une matrice,
et renvoie ses dimensions (lignes, colonnes)"""
n = len(m)
assert n > 0
p = len(m[0])
assert p > 0
for r in m:
assert len(r) == p
return (n, p)
def transpose(m):
"""transpose une matrice"""
n, p = dimensions(m)
return [[m[i][j] for i in range(n)] for j in range(p)]
def mult_matrice(a, b):
"""multiplie deux matrices"""
n, p = dimensions(a)
q, r = dimensions(b)
assert q == p
c = creer_matrice(n, r, 0)
for i in range(n):
for j in range(r):
for k in range(p):
c[i][j] += a[i][k] * b[k][j]
return c
6.6 Mode de passage des tableaux
On considère le programme suivant, où une fonction f reçoit un tableau b en argument et
le modifie :
def f(b):
b[2] = 42
Précédent

- 179/402

Suivant