PROGRAMMATION
Python
P. Njionou Sadjang
.
Feuille exercices.
Exercice 1
Ecrire un script qui pour une température T donnée affiche l’état de l’eau à cette
température c’est-à-dire SOLIDE , LIQUIDE ou GAZEUX . On prendra
comme conditions les suivantes :
— si la température est strictement négative alors l’eau est à l’état solide
— si la température est entre 0 et 100 (compris) l’eau est à l’état liquide,
— si la température est strictement supérieure à 100 l’eau est à l’état gazeux.
Exercice 2
Ecrire un script qui, connaissant la taille (en mètres) et la masse (en kg) d’un indi-
vidu, lui renvoie sa masse IMC avec un petit commentaire :
— si l’indice IMC est inférieur à 25, le commentaire pourra être : vous n’êtes
pas en surpoids
— sinon le commentaire pourra être : vous êtes en surpofs .
masse
Cette fonction utilisera 3 variables : masse, taille et IMC=
taille × taille
Exercice 3
Soit CT, CC, TP respectivement les notes de contrôle terminalm de contrôle conti-
nue et de travaux pratiques d’une unité d’enseignement. La note finale est calculée
selon la formule
03TP + max{0.7CT; 0.5CT + 0.2CC }.
1. Ecrire une fonction qui calcule la note finale sans utiliser la fonction max de
Python.
2. Calculer la note finale dans chacun des cas suivants
a. TP = 10, CT = 10, CC = 10 d. TP = 20, CT = 10, CC = 10
b. TP = 10, CT = 10, CC = 20 e. TP = 20, CT = 10, CC = 20
c. TP = 10, CT = 20, CC = 10 f. TP = 20, CT = 20, CC = 10
1
Exercice 4
Pour dissimuler la combinaison à trois nombres de son coffre, le professeur Guique
eu l’idée de la cacher à l’intérieur d’un algorithme. Les trois nombres de la combi-
naison sont en effet les valeurs contenues dans les variables a, b et c après l’exécution
de l’algorithme suivant :
Initialiser a, b, c, k et n respectivement à 1, 2, 5, 1 et 0.
Répéter tant que k est strictement inférieur a 1000-n
------> a = b
------> b = c + a
------> c = 3c + 4a - b
------> n = a + b
------> augmenter k de 1
fin répéter
Quelle est la séquence des trois nombres ouvrant le coffre du professeur Guique ?
Exercice 5
Créer des scripts qui dessinent les triangles comme les suivants :
Exercice 6
Pour le texte donné, créer un programme qui affiche le nombre de voyelle.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean at accumsan nisl,
ac aliquet tellus. Sed maximus leo lacus, nec pulvinar purus maximus vel. Morbi
sagittis suscipit risus, sed luctus metus bibendum vitae. Sed ac odio dignissim,
efficitur ipsum eu, imperdiet ante. Sed eu lobortis nulla, placerat fermentum pu-
rus. Cras sollicitudin metus et imperdiet condimentum. Nulla a sapien sollicitudin
nunc tincidunt interdum. Praesent elementum dolor id lacus lacinia, eu viverra
arcu molestie. In nec neque ac ligula posuere gravida. Nulla maximus augue in
consequat viverra. Integer euismod nibh a elit ullamcorper venenatis. In egestas,
urna quis congue aliquam, risus lacus mollis nibh, sed venenatis dui lorem sed
eros. Aliquam erat volutpat. Sed sagittis quam sed vestibulum ultricies. Cras sit
amet efficitur nunc. Pellentesque mattis fermentum dui, finibus sagittis lacus sol-
licitudin quis. Praesent luctus pharetra nunc, vitae commodo ante laoreet sed. Sed
eu lectus lectus. Nam luctus nisi quis porta fringilla. Quisque a tempus lectus. Cras
at mauris tincidunt, volutpat eros vel, venenatis urna. Integer et tellus ut dui vul-
2
putate interdum ut id nunc.
Exercice 7
Afficher les tables de multiplication entre 1 et 10. Voici un exemple de ligne à affi-
cher : 7 × 9 = 63. On utilisera une commande d’affichage du style
print(a,"x",b,"=",a*b).
Exercice 8
On considère les deux listes suivantes :
• courleurs =[’pique’,’coeur’,’carreau’, ’trefle’]
• valeurs=[’7’, ’8’, ’9’, ’10’, ’valet’, ’reine’, ’roi’, ’as’]
Ecrire un script qui affiche toutes les cartes d’un jeu de 32 cartes.
Exercice 9
1. Ecrire un script qui affiche le plus petit entier n tel que (n + 1) × (n + 3)
dépasse 12345.
2. Ecrire un script qui affiche le plus petit entier n tel que 4 + 5 + 6 + . . . + n
dépasse 12345.
3. Ecrire un script qui affiche le plus petit entier n tel que 12 + 22 + 32 + . . . + n2
dépasse 12345.
Exercice 10
Soit (un )n∈N la suite définie par un = (0.7)3n . Quel est le plus petit n tel que
un < 10−4 ?
Exercice 11
Soit n ∈ N donné avec n ≥ 2. Afficher le plus petit diviseur d ≥ 2 de n.
Exercice 12
Soit n ∈ N donné. Trover la première puissance de 2 plus grande que n en utilisant
la boucle while.
Exercice 13
Soit (un )n∈N une suite définie par récurrence. Ecrire un script qui affiche u0 , . . . u10
dans les cas suivants en utilisant une boucle while :
u0 = 1
( (
u0 = 1 u0 = −1
, u1 = 1
un+1 = 2un + 1 u n +1 = − u n + 5
u n +2 = u n +1 + u n
3
Exercice 14
Calculer u5 et v5 avec (un )n∈N et (vn )n∈N deux suites définies par
u0 = 1
v = −1
0
.
u n+1 = 3vn + 1,
vn+1 = u2n .
Exercice 15
Calculer u100 et v100 où (un )n∈N et (vn )n∈N sont deux suites définies par
u0 = v0 = 1
u n +1 = u n + v n .
vn+1 = 2un − vn
Exercice 16
(Défi Turing numero 77). Deux nombres de 4 chiffres ont la propriété suivante :
abcd = ab2 + cd2 .
• 1233 = 122 + 332
• 8833 = 882 + 332
Quel est le plus grand nombre de 8 chiffres de ce type : abcde f gh = abcd2 + e f gh2 ?
Exercice 17
1. Quel est le seul nombre ayant le motif suivant : abcd = ab × cd ?
2. Précision (1.5.2014) : ce n’est pas un cryptarithme. Deux lettres différentes
peuvent désigner le même chiffre.
3. Existe t’il un nombre ayant pour motif abcde f = ab × cd × e f ?
4. On dénomme nombre de Armstrong un entier naturel qui est égal à la somme
des cubes des chiffres qui le composent. Par exemple 153 = 13 + 53 + 33 . On
peut montrer qu’il n’existe que 4 nombres de Armstrong et qu’ils ont tous 3
chiffres. Ecrire la liste des nombres de Armstrong.
4
Exercice 18
Un nombre palindrome se lit de la même façon de gauche à droite et de droite
à gauche. Le plus grand palindrome que l’on peut obtenir en multipliant deux
nombres de deux chiffres est 9009 = 99 x 91.
Quel est le plus grand palindrome que l’on peut obtenir en multipliant un nombre
de 4 chiffres avec un nombre de 3 chiffres ?
Exercice 19
Un nombre intouchable est un entier naturel qui ne peut pas être exprimé comme la
somme des diviseurs propres d’un entier (diviseurs autres que l’entier lui-même).
Par exemple, 9 n’est pas intouchable, car 15 a pour diviseurs propres 1, 3, 5, et
1+3+5 = 9.
Par contre, 52 est intouchable car aucun entier n’a 52 pour somme de diviseurs
propres.
Les premiers nombres intouchables sont : 2, 5, 52, 88, 96, 120, 124, 146, 162, 188, ...
Si k n’est pas intouchable, notons p(k ) le plus petit entier dont la somme des divi-
seurs propres est k. Quelle est la valeur maximale de p(k ), pour k inférieur à 666 ?
Exercice 20
Les chiffres du cube 41063625 (3453 ), peuvent être permutés pour produire deux
autres cubes : 56623104 (3843 ) et 66430125 (4053 ). En fait, 41063625 est le plus petit
cube qui a cette propriété.
Trouver le plus petit cube pour lequel exactement quatre des permutations de ses
chiffres sont des cubes.
Précision : le cube lui-même + 3 permutations de ses chiffres.
Exercice 21
(Triplets pytagoriciens) Le triplet d’entiers naturels non nuls ( a, b, c) est pytagori-
cien si a2 + b2 = c2 .
Pour c = 2020 il existe 4 triplets pytagoricien différents : (400, 1980), (868, 1824),
(1212, 1616) et (1344, 1508).
Pour chaque c dans [2010, 2020] calculer combien de triplets pytagoriciens existent.
5
Exercice 22
(Nombres amicaux). Soit d(n) la somme des diviseurs propres de n (diviseurs stric-
tement plus petits que n). Si d( a) = b et d(b) = a, avec a différent de b, alors a et b
sont dits amicaux. Par exemple, les diviseurs propres de 220 sont 1, 2, 4, 5, 10, 11,
20, 22, 44, 55 et 110 ; donc d(220) = 284. Les diviseurs propres de 284 sont 1, 2, 4, 71
et 142 ; donc d(284) = 220. 220 et 284 sont deux nombres amicaux.
La somme des nombres amicaux entre 1 et 1000 vaut 220 + 284 = 504.
Quelle est la somme des nombres amicaux compris entre 1 et 100 000 ?
Exercice 23
(Nombres parfaits, nombres déficients, nombres abondant). Un nombre parfait
est un nombre dont la somme de ses diviseurs propres est exactement égal au
nombre. Par exemple, la somme des diviseurs propres de 28 serait 1 + 2 + 4 +
7 + 14 = 28, ce qui signifie que 28 est un nombre parfait. Un nombre n est ap-
pelé déficient si la somme de ses diviseurs propres est inférieur à n et on l’appelle
abondant si cette somme est supérieure à n. Comme 12 est le plus petit nombre
abondant (1 + 2 + 3 + 4 + 6 = 16), le plus petit nombre qui peut être écrit comme
la somme de deux nombres abondants est 24.
Trouver la somme de tous les entiers positifs inférieurs ou égaux à 2013 qui ne
peuvent pas être écrits comme la somme de deux nombres abondants.
Exercice 24
Considérons un nombre entier positif, par exemple 377. Multiplions ses chiffres :
3 × 7 × 7 = 147. Opérons de même avec le résultat 147 : 1 × 4 × 7 = 28.
Recommençons : 2 × 8 = 16. Encore : 1 × 6 = 6. Arrivé à un nombre d’un seul
chiffre, on s’arrête.
377, 147, 28, 16, 6 est la suite multiplicative de 377 et la persistance multiplica-
tive
p de 377 est le nombre de fois qu’il a fallu multiplier les chiffres avant d’arriver à
un nombre à un seul chiffre ; ici, p = 4.
On conjecture que p ne peut pas dépasser 11...
Quel est le plus petit entier inférieur à 1’000’000 qui a la persistance multiplicative
p la plus grande ?
Exercice 25
(multiples constitués des mêmes chiffres)
On peut constater que le nombre 125874 et son double 251748 sont constitués des
mêmes chiffres, mais dans un ordre différent.
Trouver le plus petit n ∈ N? tel que n, 2n, 3n, 4n, 5n et 6n soient constitués des
mêmes chiffres.
6
Exercice 26
(Désamorçage de bombe)
Une bombe dévastatrice a été placée à Los Angeles par un membre des Maı̂tres du
mal. Black Widow a réussi à la trouver et doit maintenant tenter de la désamorcer.
Une fois la bombe ouverte, c’est un véritable sac de n ?uds. Il y a 1000 fils numérotés
de 0 à 999, et il faut en couper un seul, le bon, pour arrêter le compte à rebours.
Heureusement, les Avengers ont pu fournir un manuel de désamorçage à Black Wi-
dow. Celui-ci indique (il est en russe, nous avons traduit pour vous) : Le numéro
du fil à couper peut être déduit du numéro de série de la bombe ainsi :
commencez par relever le numéro de série (il est indiqué en entrée du problème
sur cette page) coupez le numéro de série en 2. Les trois premiers chiffres forment
le nombre U et les 3 derniers le nombre N répétez N fois les opérations 4 et 5 sui-
vantes en partant du nombre U multipliez ce nombre par 13 ne conservez que les 3
derniers chiffres.
Une fois cet algorithme terminé, le nombre obtenu est le numéro du fil à couper.
Imaginons que le numéro de série soit 317010. On coupe le nombre en deux : U =
317, N = 10. Il faut donc faire 10 fois (N) les opérations : multiplier le nombre U
(317) par 13, ce qui donne 4121 conserver les 3 derniers chiffres, ce qui donne 121
et on recommence avec 121... On obtient ainsi :
• 317 --> 4121 --> 121
• 121 --> 1573 --> 573
• 573 --> 7449 --> 449
• 449 --> 5837 --> 837
• 837 --> 10881 --> 881
• 881 --> 11453 --> 453
• 453 --> 5889 --> 889
• 889 --> 11557 --> 557
• 557 --> 7241 --> 241
• 241 --> 3133 --> 133
Par conséquent, si le numéro de série avait été 317010, il aurait fallu couper le fil
133.
Indiquez à Black Widow le numéro du fil à couper pour valider le défi. Les numéros
de série sont donnés en entrée du problème. On a respectivement : 797 114, 543 654,
456 987.
Exercice 27
(Les nombres heureux).
Les nombres sont parfois pourvus de qualificatifs surprenants. Il existe en effet
des nombres heureux et des nombre malheureux. Pour savoir si un nombre est
heureux, il faut calculer la somme des carrés de ses chiffres, et recommencer avec
le résultat. Si on finit par tomber sur 1, alors le nombre est heureux. Sinon, il est
malheureux.
Par exemple, le nombre 109 est heureux. En effet :
109 → 12 + 02 + 92 = 82 → 82 + 22 = 68 → 62 + 82 = 100 → 12 + 02 + 02 = 1
7
Par contre, 106 est malheureux. En effet :
106 → 12 + 02 + 62 = 37 → 32 + 72 = 58 → 52 + 82 = 89 → 82 + 92 =
145 → 12 + 42 + 52 = 42 → 42 + 22 = 20 → 22 + 02 = 4
→ 42 = 16 → 12 + 62 = 37
Le nombre 37 a déjà été obtenu en début de séquence, on sait donc que la série 37,
58, 89, 145, 42, 20, 4, 16 va se répéter indéfiniment. Le nombre 1 ne sera donc jamais
atteint.
Défi : l’entrée du problème est la donnée de deux bornes mini et maxi. Il faut
répondre en donnant la liste des nombres heureux compris entre ces deux bornes
(incluses), par ordre croissant. Testez votre code : par exemple, si les bornes données
étaient mini=109 et maxi=141, il faudrait répondre en indiquant (109, 129, 130, 133,
139).
Exercice 28
Remplir les cases de la grille ci-dessous avec des nombres entiers, de telle sorte que
chacune de ces dix cases nouvellement remplies contienne un nombre qui soit la
moyenne des nombres contenus dans les quatre cases avec lesquelles elle a un côté
commun.
Quel est le produit des nombres de ces 10 cases nouvellement remplies (en excluant
les éventuels 0) ?
Exercice 29
1. Pour obtenir un carré enchanté, remplir les neuf cases ci-dessous avec les
chiffres de 1 à 9 de telle sorte que la somme des nombres écrits dans un carré
de quatre cases soit toujours la même.
Par exemple
8
9 + 1 + 2 + 7 = 1 + 8 + 7 + 3 = 2 + 7 + 6 + 4 = 7 + 3 + 4 + 5 = 19.
Combien y a-t-il de carrés enchantés (sans tenir compte des symétries) ?
2. Pour obtenir un carré hétérogène d’ordre 3, remplir les neuf cases du carré
ci-dessous avec des chiffres de 1 à 9 de telle sorte que les huit sommes des
trois nombres des lignes, des colonnes et des deux diagonales soient toutes
différentes.
Exemple :
4 + 5 + 7 6= 1 + 3 + 8 6= 9 + 2 + 6 6= 4 + 1 + 9 6= 5 + 3 + 2 6= 7 + 8 + 6 6=
4 + 3 + 6 6= 7 + 3 + 9.
Combien y a t’il des carrés hétérogènes d’ordre 3 (sans tenir compte des
symétries) ?
Exercice 30
Un entier naturel k de n chiffres est dit nombre de Kaprekar naturel si son carré se
décompose en une partie droite de n chiffres et une partie gauche de n ou n − 1
chiffres telles que leur somme donne k.
45 est le 3ème nombre de Kaprekar naturel, car 452 = 2025 et 20 + 25 = 45.
297 est le 6ème nombre de Kaprekar naturel, car 2972 = 88209 et 88 + 209 = 297.
Les 15 premiers nombres de Kaprekar naturels sont : 1, 9, 45, 55, 99, 297, 703, 999,
2223, 2728, 4950, 5050, 7272, 7777, 9999.
Quel est le 49ème nombre de Kaprekar naturel ?
9
Exercice 31
Racine de deux peut être représentée par une fraction continue :
√ 1
2 = 1+
1
2+
1
2+
1
2+
2+···
Les 4 premières itérations donnent :
• 1 + 1/2 = 3/2 = 1.5
• 1 + 1/(2 + 1/2) = 7/5 = 1.4
• 1 + 1/(2 + 1/(2 + 1/2)) = 17/12 = 1.41666...
• 1 + 1/(2 + 1/(2 + 1/(2 + 1/2))) = 41/29 = 1.41379...
Les trois fractions suivantes sont 99/70, 239/169, et 577/408. La huitième fraction,
1393/985, est la première où le numérateur a plus de chiffres que le dénominateur.
Parmi les 10’000 premières fractions, combien y en a-t-il où le numérateur a plus
de chiffres que le dénominateur ?
Exercice 32
(Désamorçage d’un explosif (I))
Une bombe dévastatrice a été placée à Los Angeles par un membre des Maı̂tres du
mal. Black Widow a réussi à la trouver et doit maintenant tenter de la désamorcer.
Une fois la bombe ouverte, c’est un véritable sac de noeuds. Il y a 1000 fils numérotés
de 0 à 999, et il faut en couper un seul, le bon, pour arrêter le compte à rebours.
Heureusement, les Avengers ont pu fournir un manuel de désamorc ?age à Black
Widow. Celui-ci indique (il est en russe, nous avons traduit pour vous) :
Le numéro du fil à couper peut être déduit du numéro de série de la bombe
ainsi :
• commencez par relever le numéro de série (il est indiqué en entrée du
problème sur cette page)
• coupez le numéro de série en 2. Les trois premiers chiffres forment le
nombre U et les 3 derniers le nombre N
• répétez N fois les opérations 4 et 5 suivantes en partant du nombre U
• multipliez ce nombre par 13
• ne conservez que les 3 derniers chiffres.
Une fois cet algorithme terminé, le nombre obtenu est le numéro du fil à cou-
per.
Par exemple, si le numéro de série avait été 317010, il aurait fallu couper le fil 133.
Indiquez à Black Widow le numéro du fil à couper pour valider le défi si le numéro
de série est 449149.
Source [Link]
10
Exercice 33
( L’hydre de Lerne).
Histoire. Pour son deuxième travail, Eurysthée demanda à Hercule de tuer l’Hydre,
une sorte de dragon possédant plusieurs têtes et qui hantait les marais de Lerne.
Pour mener à bien sa mission, Hercule, muni de sa seule épée, décida de trancher
les têtes de l’Hydre. La tâche n’était pas si facile et les têtes repoussaient parfois
lorsqu’il les coupait. Toutefois, la repousse des têtes de l’Hydre suivait une règle
simple, ainsi que la stratégie d’Hercule :
• A chaque coup d’épée, Hercule coupait la moitié des têtes restantes.
• Si après une coupe, il restait un nombre impair de têtes, alors le nombre de
têtes restantes triplait instantanément, et une tête supplémentaire repoussait
encore.
• Si à un moment l’Hydre ne possédait plus qu’une seule tête, Hercule pouvait
l’achever d’un coup d’épée supplémentaire.
Exemple
• Si l’Hydre a 6 têtes, Hercule en coupe la moitié au premier coup d’épée. Il en
reste 3. Instantanément, le nombre de têtes triple et il en pousse une autre. Il
y a maintenant 10 têtes.
• Au second coup d’épée, Hercule en coupe 5. Des têtes repoussent, il y en a
maintenant 16.
• Au troisième coup d’épée, Hercule coupe 8 têtes. Il en reste 8. Rien ne re-
pousse. (Il reste un nombre pair)
• Au quatrième coup d’épée, Hercule coupe 4 têtes, il en reste 4. Rien ne re-
pousse.
• Au cinquième coup d’épée, Hercule coupe 2 têtes, il en reste 2. Rien ne re-
pousse
• Au sixième coup d’épée, Hercule coupe une tête. Il n’en reste plus qu’une.
• Le septième et dernier coup d’épée permet d’achever l’Hydre.
Si l’Hydre a 6 têtes, Hercule doit donc donner 7 coups d’épée pour la vaincre.
Défi : le nombre réel de têtes de l’Hydre est donné 8542. Combien de coups d’épée
seront nécessaires pour venir à bout du monstre ?
Source : [Link]
Exercice 34
Problème 1 : Message codé
Fabrice doit envoyer un message à Vanessa via Bertrand. Mais comme les deux ont
des visées sur Vanessa, Fabrice sait que Bertrand fera un effort de savoir ce qui
est passé comme message. Il s’est donc mis d’accord avec Vanessa pour coder les
messages qu’ils s’échangent.
• La lettre a est transformée en t.
• La lettre g est transformée en z.
• La lettre p est transformée en i.
Bertrand déchire l’enveloppe mais ne connait pas le code, il découvre alors le mes-
sage suivant :
11
lb ohnl toxs ytbm et mktwnvmbhg xg nmbebltgm exl ftbgl tehkl ohnl g’tuxs itl wn
mhnm kxihgwn t et jnxlmbhg. ex unm wx e’xqxkvbvx xlm wx ihnohbk ex ytbkx xg
nmbebltgm et ftvabgx xm ng uhg tezhkbmfx. irmahg bvb xlm ex etgztzx jnx ghnl
tohgl vahblb.
1. Quel message a t’il envoyé ?
2. Vanessa répond de la façon suivante.
C’est pour un message aussi simple que tu utilise un criptage ? Je pensais
que ce serait plus serieux. Excellente journee
Coder le message à remettre à Bertrand.
Exercice 35
Les téléphones portables à touches proposent un mode de saisie appelé T9. Les 26
lettres de l’alphabet sont réparties sur les touches 2 à 9, comme sur la figure ci-
contre.
Pour saisir un mot, il suffit de saisir la suite de chiffres correspondants. Par exemple,
’Turing’ sera codé 887464. Evidemment, plusieurs mots peuvent correspondre à
une même séquence. Par exemple, la séquence 36724368 code les 6 mots ’dopaient’,
’doraient’, ’dosaient’, ’enragent’, ’enraient’, ’foraient’.
Le fichier [Link] contient 323’471 mots français non accentués.
En utilisant ce dictionnaire, trouver la séquence T9 qui code le plus de mots français.
Exercice 36
Le fichier [Link] contient 323’471 mots français non accentués. Un hétérogramme
est un mot où chaque lettre apparaı̂t au plus une fois. Voici quelques-uns de ces
mots :
a, je, cage, clapoter, hibou, émir, va-nu-pieds (les traits d’union ne sont pas des
lettres), ...
Par contre, ces mots ne satisfont pas la contrainte :
enragé (les accents ne comptent pas), capable, ...
Combien de mots du dictionnaire [Link] sont des hétérogrammes ?
12
Exercice 37
Les Ewoks ont toujours des noms amusants : Ashbimo, Hexjunprak, Hexphambi...
Certains contiennent exactement deux fois plus de consonnes que de voyelles,
comme c’est le cas pour Hexphambi (3 voyelles et 6 consonnes).
Vous avez en entrée une liste de noms Ewoks ([Link]). Combien contiennent exac-
tement deux fois plus de consonnes que de voyelles (on comptera le y comme une
voyelle) ?
Exercice 38
Afin de protéger une information secrète, les Vogons (peu connus, car justement
versés dans l’art du secret) utilisent simultanément deux méthodes. D’une part, il
chiffrent les informations en utilisant la méthode de César (un simple décalage de
l’alphabet), mais ils noient en plus cette information dans un flot d’informations
cryptées.
Plus précisément, ils ont pour habitude d’émettre en continu des séquences de 50
caractères. Chacune de ces séquences est obtenue en décalant d’un certain nombre
de lettres les caractères du message original.
Par exemple, en utilisant un décalage de 3, le message :
JAIMEBIENRELEVERDESDEFISAVECPYTHON
devient
MDLPHELHQUHOHYHUGHVGHILVDYHFSBWKRQ
(notez que le Y de Python est devenu un B, car on cycle l’alphabet).
Pour déchiffrer, on peut utiliser un décalage de -3, ou de manière équivalente, un
décalage de 23 (car 23+3=26, et un décalage de 26 revient à ne rien modifier)
À chaque émission d’une séquence de 50 caractères, la clé (la valeur du décalage)
est modifiée et vous n’avez aucun moyen de prévoir la valeur de la clé qui sera
utilisée pour chaque message.
La plupart du temps, les informations émises par les Vogons sont sans intérêt. Cette
fois-ci cependant, vous savez qu’une information importante a été transmise, mais
vous ignorez toutefois dans quelle séquence de 50 caractères elle se situe.
Voici la suite des 146 séquences que vous avez enregistrées (voir le fichier [Link].
Votre seul indice est que la séquence contenant une information importante contient
aussi les mots SECRET et TROUVER. Quelle est cette information ?
Exercice 39
Objectifs : déterminer la langue d’un texte à partir de l’analyse des fréquences de lettres.
1. Ecris une fonction occurence lettre() qui compte le nombre de fois où la
lettre donnée apparaı̂t dans une phrase (en majuscule et sans accents).
13
2. Ecrire une fonction nombre lettres() qui compe le nombre de lettres qui ap-
paraissent dans une phrase (en majuscule et sans accents). Ne pas compter
les espaces, ni les ponctuations.
3. La fréquence d’apparition d’une lettre dans un texte ou une phrase est le pour-
centage donné selon la formule :
nombre d’occurences de la lettre
fréquence d’apparition d’une lettre = × 100.
nombre total de lettres
Par exemple, la phrase ESPRIT ES TU LA contient 12 lettres ; la lettre E y
apparaı̂t 2 fois. La fréquence d’apparition de E dans cette phrase est donc :
nombre d’occurences de E 2
fE = × 100 = × 100 ≈ 16, 66.
nombre total de lettres 12
La fréquence est donc d’environ 17%.
Ecris une fonction pourcentage lettre() qui calcule cette fréquence d’appa-
rition.
Utilise cette fonction pour afficher proprement la fréquence d’apparition de
toutes les lettres d’une phrase.
4. Voici la fréquence d’apparition des lettres selon la langue utilisée (source : en.
[Link]/wiki/Letter_frequency). Par exemple, la lettre la plus cou-
rante en français est le e avec une fréquence de plus de 16%. Le w représente
14
environ 2% des lettres en anglais et en allemand, mais n’apparaı̂t presque pas
en français et en espagnol. Ces fréquences varient aussi en fonction du texte
analysé.
D’après toi, dans quelles langues ont été écrits les quatre textes suivants (les
lettres de chaque mot ont été mélangées).
• TMAIER BERACUO RSU NU REBRA PRCEEH EIANTT NE ONS EBC
NU GAOFREM EIMATR RERNAD APR L RDUOE LAHECLE UIL TTNI
A EUP SREP EC LGNGAEA TE RBONUJO ERMNOUSI DU UBRACEO
QUE OVSU EEST LIJO UQE OUVS EM MSZELBE BAEU ASNS MIERNT
IS RVETO AGRAME ES PRARPTOE A OEVTR AMGUPLE VUOS SEET
EL PNIHXE DSE OSHET ED CSE BIOS A ESC MSOT LE OUBRCEA NE
ES ESTN ASP DE IEJO TE OUPR ERRNOTM AS BELEL XOVI IL OREVU
NU RGLEA ECB ILESSA EBOMTR AS PIOER EL NRDAER S EN ISIAST
TE ITD MNO NOB EUSRMNOI NRPEEAZP QEU UTOT EUTLRFTA IVT
XUA SPNEDE DE UECIL UQI L TECEOU TECET NEOCL VATU BNEI
UN GMAEORF SNAS TUOED LE EOABURC OHENTXU TE NSCOFU
UJRA SMIA UN EPU TRDA UQ NO EN L Y ARRPEIDNT ULSP
• WRE TREITE SO TSPA CUDHR AHNCT UND WIND SE STI RED AE-
VRT MTI ESEIMN IDNK RE ATH END NEABNK WLOH IN EMD AMR
15
ER AFTSS HIN IHSERC RE AHTL HIN MRWA EINM SHNO SAW SR-
TIBG UD SO NGBA DNEI EIHSGTC ESISTH RAETV UD DEN LERNIOKG
NITHC NDE LOENINKGRE TIM OKRN UDN CHWFSEI NEIM NSOH
ES STI IEN BIFTRLSEEEN DU BILESE IKDN OMKM EHG MIT MIR RAG
ECHNOS EPELSI EIPSL IHC ITM RDI HNCMA BEUTN MBLUNE DINS
NA DEM TNDRAS NMIEE UTETMR AHT CAMHN UDNGEL GDA-
WEN MIEN EATRV MENI VEART DUN OSTHER DU CINTH SAW KN-
NOEIREGL RIM ILEES PRSTVRCIEH ISE IHGRU BEEILB RIGUH MNEI
KNDI NI RDNEUR NATBRLET STAESUL EDR WNID
• DSNOACAIF ORP ANU DAEDALRI DNAAEIMTI EQU NNCOSETE EL
RSTEOUL SMA AACTFAITNS UQE LE TSVAO OINSRVUE DE US ANI-
GIICANOM EIORDP TOOD RTEIENS RPO LE ITOABOLRROA ED QIUA-
MALI USOP A NSSRCAEAD LA TMREAAI NXTADAUEE ROP GOARLS
EMESS DE NNAMICLUIAPO Y LOVOIV A RES LE RHMEOB EOMD-
NEERPRD DE LOS RSOPMRIE OMTSIPE UEQ CIIDADE LE RTDAAOZ
ED LSA CELSAL Y LA NICOIOPS ED LAS UESVNA SSACA Y ES ITRM-
NEEOD QEU AERFU EL UEQIN IIIRDEGAR LA NAIORTREICP DE AL
RRTEIA
• IMTRUESMME DNA TEH LNGIIV SI EYAS SIFH REA GJPNUIM DNA
HET TTNOCO IS GHIH OH OUYR DDADY SI IRHC DAN ROUY MA
SI DOGO GKOILON OS USHH LTLIET BBYA NDOT OUY CYR NEO OF
HESET GNSRONIM YUO RE NANGO SIER PU SNIGING NAD OULLY
EPADRS YUOR GINSW DAN LYOLU KATE OT HET KSY TUB ITLL
TATH MGNIRNO EREHT NATI INTGOHN ACN AHMR OYU TWIH
DADYD NDA MYMMA NSTIDGAN YB
16