Exos Fonctions Structures Donnees
Exos Fonctions Structures Donnees
Exos Fonctions Structures Donnees
1
Indication : Les chaînes de caractères permettent d’utiliser le slicing, c’est-à-dire
de faire des comparaisons du type w[i:j] == m.
>>> sous_mot ('titi', 'tructititoto')
4
>>> sous_mot ('tagada', 'tructititoto')
>>>
11. Reprogrammer la fonction précédente, mais en s’interdisant le slicing.
12. Écrire une fonction rechercher_remplacer qui prend en entrée un motif
m, un mot w et un mot de remplacement r (sous forme de chaînes de
caractères), et qui renvoie un mot identique à w, mais dans lequel la
première occurrence de m a été remplacée par r. Dans le cas où m est absent
de w, on renvoie w inchangé.
II. Entraînement. . .
1. Ecrire une fonction qui trie par ordre croissant les éléments d’un tableau
de nombres qui lui est passé en paramètre. (Pour les plus avancés, faites
en sorte que la fonction trie le tableau en nlog(n). Pouvez-vous le faire en
n si on vous dit que le tableau ne contient que des entiers ?)
2. Définitions :
• On appelle nombre premier tout entier naturel supérieur à 1 qui
possède exactement deux diviseurs, lui-même et l’unité ;
• On appelle diviseur propre de n, un diviseur quelconque de n, n exclu
;
• un entier naturel est dit parfait s’il est égal à la somme de tous ses
diviseurs propres ;
• les nombres a tels que : a + n + n2 est premier pour tout n tel que
0 ≤ n < (a − 1), sont appelés nombres chanceux.
Écrire un module parfait_chanceux_m.py définissant quatre fonctions : somDiv,
estParfait, estPremier, estChanceux et un auto-test :
• la fonction somDiv retourne la somme des diviseurs propres de son argument
;
• les trois autres fonctions vérifient la propriété donnée par leur définition
et retourne un booléen. Plus précisément, si par exemple la fonction
estPremier vérifie que son argument est premier, elle retourne True, sinon
elle retourne False
2
de la suite se construit en annonçant le terme précédent, c’est-à-dire en
indiquant combien de fois chacun de ses chiffres se répète.
• x0 = 1
• x1 = 11 (le terme précédent comporte un “1”)
• x2 = 21 (le terme précédent comporte deux “1”)
• x3 = 1211 (le terme précédent comporte un “2” et un “1”)
• x4 = 111221
• etc.
Ecrire une fonction qui prend en paramètre un entier n et renvoie le ne terme de
la suite de Conway.