4 Pour ceux qui s’ennuient
Exercice 13 Reprendre l’exercice 7 en mettant dix nombres premiers (séparés par des tabulations par
exemple, ou des virgules...) par ligne.
Exercice 14 Écrire une fonction prenant en entrée deux noms de fichier (origine et but) et écrivant
dans le fichier but l’ensemble des lignes présentes dans le fichier origine, mais dans l’ordre inverse, et
en inversant également les caractères pour chaque ligne. Tester !
Exercice 15 Créer la matrice (80,80) constituée des entiers présents dans le fichier matrix.txt
Il s’agira d’une liste constituée de 80 listes constituées de 80 entiers. On commencera par ouvrir le
fichier avec l’éditeur, pour voir la tête du contenu.
Exercice 16 Project Euler, problem 81 (« path sum : two ways »).
In the 5×5matrix below, the minimal path sum from the top left to the bottom right, by only moving
to the right and down, is indicated in bold and is equal to 2427.
131 673 234 103 18
201 96 342 965 150
630 803 746 422 111
537 699 497 121 956
805 732 524 37 331
Find the minimal path sum, in matrix.txt, a 31K text file containing a 80 ×80 matrix, from the top
left to the bottom right by only moving right and down.
Exercice 17 Reprendre l’exercice 7 en utilisant une redirection de sortie standard telle que décrite dans
le kit de survie.
Exercice 18 À l’aide du fichier créé dans l’exercice 13, calculer la somme des nombres premiers majorés
par 10000... en seulement trois lignes, dont une pour ouvrir le fichier, et une autre pour le fermer !
Exercice 19 Représenter le « graphe discret » des 11 premiers termes de la suite ude premier terme
u0=−8.41 et vérifiant la relation de récurrence un+1 =−1
2un+ 63 (cf. annexes).
Exercice 20 Le fichier jocondeBW.jpg peut être manipulé par Python via le module Image : on crée
un objet associé à ce fichier via la commande Mona = Image.open(’jocondeBW.jpg’)
L’objet Mona contient entre autres une méthode histogram. Observer le résultat renvoyé par cette
méthode... et représenter l’histogramme de la Joconde, ainsi que l’histogramme cumulé (ce qui induit
deux normalisations différentes de l’axe des y).
On sauvera également l’histogramme dans un fichier csv « human readable ».
5 Besoin d’indications ?
– Exercice 6. On peut créer un tableau series de quatre entiers représentant le nombre d’admissibles
aux différentes séries (en faisant attention au décalage : series[i] contient le nombre d’admissibles
à la série i+1). Pour incrémenter le compteur correspondant à la série présente dans la chaîne ch, on
pourra par exemple exécuter : series[ int(ch) - 1] += 1 Cette même chaîne aura probablement
été obtenue via quelque chose comme ligne.strip().split(’\t’)[3] !
– Exercice 8. On peut créer un tableau de 4 fichiers en une seule étape, via :
fichiers = [open(’admissibles-serie-’+str(i+1)+’.txt’,’w’) for i in range(4)]
– Exercice 12. Les mots clés suivants pourront servir, pour les fioritures :
title; linewidth=; ’--’; ’lower right’
– Exercice 16. Si on note ϕ(i, j)le poids minimal des chemins pour arriver en position (i, j)(indexa-
tion à la Python), alors l’objectif est ϕ(79,79). On a par ailleurs :
∀i, j > 0, ϕ(i, j) = Mi,j + min (ϕ(i−1, j), ϕ(i, j −1)) .
3