Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214
Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214
Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214
Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214
Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214
Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214
Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214
Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214
Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214
Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214
Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214
Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214
Table des matières
Premiers exemples et implémentations
Exercice 1 du TP2
Il est parfois utile – voire nécessaire – de mettre en place un premier parcours séquentiel, avec une boucle, et, en fixant ce premier élément, de parcourir une deuxième boucle. De manière artificielle on peut faire
for i in range(4):
for j in range(3):
print(i, j)
Combien de fois la fonction print est-elle appelée dans cette boucle ?
Matrice de Vandermonde
On peut aussi créer un tableau rectangulaire – une matrice – avec une liste de listes grâce à deux boucles imbriquées.
Par exemple, pour une matrice de Vandermonde, dont l’élément de la ligne $0 \leqslant i \leqslant n-1$ et de la colonne $0 \leqslant j \leqslant p-1$, est $i^j$,
def vandermonde(n, p):
M = []
for i in range(n):
L = []
for j in range(p):
L.append(i∗∗j)
M.append(L)
return M
Ce qui peut être, après exécution, testé en console :
>>> vandermonde(6,4)
Quel est la complexité de la fonction vandermonde ?
Tableau triangulaire
On peut dans certains cas n'avoir besoin que d'un tableau triangulaire, c'est-à-dire qu'une borne de l'itérateur qui permet de décrire la boucle interne (la deuxième) dépend de l’indice qui permet de décrire la première boucle.
for i in range(4):
for j in range(i): # noter le i
print(i, j)
ou encore
def tableau_triangulaire(n):
"""
crée un tableau triangulaire de taille n avec m[i][j]=(i+1)∗(j+1)
"""
M = []
for i in range(n):
L = []
for j in range(i): # j décrit l'intervalle d'entier [[0 , i−1]]
item = (i+1)∗∗(j +1)
L.append(item)
M.append(L)
return M
Après exécution en console :
>>> tableau_triangulaire(5)
Quel est la complexité de la fonction tableau_triangulaire ?
