T.P. 5 : tableaux bi-dimensionnels, binomiaux, triangle de Pascal 1

publicité
T.P. 5 : tableaux bi-dimensionnels, binomiaux, triangle de Pascal
Un point important de terminologie : ce que nous appelons liste en python est plus souvent
appelé tableau en informatique. Une liste de nombres par exemple T = [1, 3, 4] sera pour nous aussi
appelée tableau . En réalité du point de vue informatique, la structure de donnée tableau et la
structure de donnée liste ont des différences, suivant la façon dont elles sont codées en machine,
pour savoir notamment si on accède à toutes les entrées avec le même temps ou pas. Vous reviendrez
à ce problèmes en Option Info. notamment, mais pour nous, on emploiera les mots listes ou tableaux
pour parler des listes Python.
En revanche ce qu’on appelle tableau dans le langage courant est un objet ≪ bidimensiona b c
nel ≫ comme une matrice, par exemple (
). Comment coder de tels tableaux dits bidid e f
mensionnels en informatique ?
1
Tableaux bidimensionnels vus comme liste double : première
approche
Une façon rudimentaire pour fabriquer un tableau bidimensionnel en Python est d’utiliser
une liste de listes. Par exemple L=[[1,2],[3,4]] est ce qu’on appelle en informatique un tableau
bidimensionnel qui code ce que les humains ont envie de voir comme le tableau pour humain :
1 2
(
).
3 4
a) Comment afficher ce tableau L sur deux lignes ?
b) Fabriquer une fonction affiche_tableau_pour_humain qui est une fonction d’affichage :
elle prend en argument un tableau informatique (liste de listes) et l’affiche ligne par ligne
sans crochet ni virgules.
c) Comment modifier L pour obtenir dans L [[1,2],[3,5]].
d) Ecrire une fonction Tzeros(m,n) qui prend en arguments deux entiers m et n et retourne un
tableau à m lignes et n colonnes rempli de zéros.
e) Soit L=Tzeros(3,3). Modifier la première entrée de la première ligne de L pour y mettre
un 1.
f) Fabriquer une fonction qui transforme une liste en un tableau qui va à la ligne toutes les
dix entrées : attention, on veut que cette fonction retourne un tableau informatique bidimensionnel (liste de listes). A l’aide de cette fonction et de affiche_tableau_pour_humain
on peut alors afficher tous les nombres entiers jusqu’à 100 à partir de L=list(range(101))
sous la forme d’un tableau pour humain.
2
Calcul des binomiaux par la formule explicite
a) Ecrire une fonction factorielle(n) qui prend en argument un entier n et renvoie sa factorielle.
b) Ecrire une fonction binomial(m,n) qui prend en argument deux entiers m et n et retourne
(m
) qui doit être de type integer, grâce à la formule explicite.
n
3
Le tableau du triangle de Pascal
a) Fabriquer une fonction qui prend comme argument un entier naturel n et renvoie une liste
double qui correspond au triangle de Pascal jusqu’à la ligne n. N.B. On n’utilisera pas la
formule explicite, mais la formule du triangle de Pascal.
1
b) Appliquer la fonction d’affichage précédent pour obtenir le tableau du triangle de Pascal
aligné à gauche.
c) Modifier la fonction d’affichage précédent pour obtenir le tableau du triangle de Pascal
centré.
Indication : utiliser la méthode center sur les chaı̂nes de caractères. d) A partir d’un tableau obtenu par la question précédente, obtenir le tableau où l’on remplace
chaque entrée par un O si elle est paire et un ∗ si elle est impaire. Commentez le dessin
obtenu pour une valeur de n assez grande.
4
Crible d’Eratosthène
Le célèbre crible d’Eratosthène pour trouver tous les nombres premiers inférieurs à un entier n
consiste à écrire tous les entiers inférieurs ou égaux à n, puis rayer les multiples de 2, ceux de 3 et
ensuite de chaque nombre non rayé qui est premier. A la fin il ne reste que les nombres premiers.
Programmez le crible d’Eratosthène pour le nombres premiers à partir d’une liste en remplaçant
au fur et à mesure tous les nombres non premiers par des *. Affichez le résultat sous la forme d’un
tableau grâce à la fonction précédente.
2
Téléchargement