Livre_silo 30 août 2013 16:32 Page 170
¨
©
¨
©
¨
©
¨
©
C o p y r i g h t E y r o l l e s
170
Informatique pour tous
Exercice 6.32 * Écrire une variante de la fonction copie_matrice qui copie une matrice dont les éléments
sont des tableaux, de manière à ce que les éléments ne soient pas partagés entre la matrice et sa copie.
(Note : il existe en Python une fonction de bibliothèque copy.deepcopy qui effectue une copie récursive
des valeurs.)
Exercice 6.33 Écrire une fonction qui multiplie deux matrices en utilisant la fonction transpose et le
produit scalaire (voir exercice 6.27 ci-dessus).
Exercice 6.34 * Écrire une fonction qui élève une matrice carrée à la puissance n en réutilisant l’idée de
l’exercice 4.25. Quelle est sa complexité ?
Exercice 6.35 * Déduire de l’exercice précédent une fonction qui calcule le n-ième élément de la suite
de Fibonacci (voir exercice 5.24) avec log n produits matriciels, en utilisant l’identité suivante :
(
1 1
1 0
) n
=
(
F n+1 Fn
Fn
F n−1
)
.
Exercice 6.36 Écrire une fonction construire_matrice(n, p, f) qui renvoie la matrice de dimensions
(n, p) dont le terme général est f(n, p).
¨
©
¨
©
¨
©
¨
©
C o p y r i g h t E y r o l l e s
170
Informatique pour tous
Exercice 6.32 * Écrire une variante de la fonction copie_matrice qui copie une matrice dont les éléments
sont des tableaux, de manière à ce que les éléments ne soient pas partagés entre la matrice et sa copie.
(Note : il existe en Python une fonction de bibliothèque copy.deepcopy qui effectue une copie récursive
des valeurs.)
Exercice 6.33 Écrire une fonction qui multiplie deux matrices en utilisant la fonction transpose et le
produit scalaire (voir exercice 6.27 ci-dessus).
Exercice 6.34 * Écrire une fonction qui élève une matrice carrée à la puissance n en réutilisant l’idée de
l’exercice 4.25. Quelle est sa complexité ?
Exercice 6.35 * Déduire de l’exercice précédent une fonction qui calcule le n-ième élément de la suite
de Fibonacci (voir exercice 5.24) avec log n produits matriciels, en utilisant l’identité suivante :
(
1 1
1 0
) n
=
(
F n+1 Fn
Fn
F n−1
)
.
Exercice 6.36 Écrire une fonction construire_matrice(n, p, f) qui renvoie la matrice de dimensions
(n, p) dont le terme général est f(n, p).
