Informatique Introduction à l’algorithmique MPSI B Hoche
sont des appels de fonction contenant des paramètres comme Cassy ou Eg. L’ap-
pel d’une fonction exécute un enchaînement de commandes qui peut modifier ou
non les objets désignés par les paramètres et renvoyer ou non un autre objet.
Par exemple, les fonctions "faire bouillir" ,"chauffer" "secouer" modifient
l’état de l’objet désigné par Cassy ou Eg. En revanche "vider" ne modifie pas
l’objet désigné par le paramètre mais renvoie quelque chose obtenu à partir de ce
paramètre (le contenu de la casserole ou de l’égouttoir).
Introduisons maintenant la notion de structure de contrôle dans l’enchaînement
des commandes. On va évaluer quelque chose à "vrai" ou "faux" et diriger vers des
enchaînements différents suivant le résultat.
Détaillons ainsi la commande "faire bouillir" Cassy suivant la figure 4
Fig. 4 – structure de contrôle
Partie II : numération en base b
Proposition. Soit bun entier naturel supérieur ou égal à 2. Pour tout entier
naturel xentre 0et bn−1, il existe un unique n-uplet
(a0, a1,· · · , an−1)∈ {0,1,· · · , b −1}n
tel que
x=a0+a1b+· · · +an−1bn−1
Cette proposition traduit l’existence et l’unicité de la décomposition d’un entier
dans une base arbitraire. On utilise en particulier les bases b= 2 (binaire), b= 10
(décimale), b= 16 (héxadécimal), b= 20 1,b= 60 (sexagésimale) 2
Preuve. Pour démontrer cette proposition, on va remarquer qu’elle est équivalente
à la bijectivité d’une certaine application entre deux ensembles finis ayant le même
1voir le système de numération maya. Cette base semble aussi avoir été utilisée par les Gaulois,
le 80 quatre-vingt en serait un lointain vestige (ref wikipédia)
2utilisé par les mésopotamiens voir en particulier les tablettes cuneiformes de Plimpton
nombre d’éléments. Pour une telle application, l’injectivité entraîne la surjectivité
donc la bijectivité.
La démonstration de l’injectivité est constructive. Si un entier est décomposé alors
chaque aise calcule algorithmiquement en fonction de xet de b. Ceci assure l’unicité
de la décomposition donc l’injectivité de la fonction.
Considérons la fonction
Φ({0,1,· · · , b −1}n→{0,1,· · · , bn−1}
(a0, a1,· · · , an−1)→a0+a1b+· · · +an−1bn−1
En fait, il faut commencer par montrer que
a0+a1b+· · · +an−1bn−1∈ {0,1,· · · , bn−1}
Ceci résulte de l’encadrement
0≤a0+a1b+· · · +an−1bn−1≤(b−1) + (b−1)b+· · · + (b−1)bn−1
≤(b−1)(1 + b+· · · +bn−1) = bn−1
On démontre exactement de la même manière que, pour des m≤n:
a0+a1b+· · · +am−1bm−1∈ {0,1,· · · , bm−1}
Ceci servira plus loin pour justifier un des deux algorithmes proposés.
La proposition est exactement équivalente à la bijectivité de la fonction Φ. Les
ensembles de départ et d’arrivée ont le même nombre d’éléments à savoir bn.
Si la fonction Φest injective, les images sont deux à deux distinctes. Il y a donc
autant d’images distinctes que d’éléments dans l’ensemble de départ. Mais alors
tous les bnéléments de l’ensemble d’arrivée sont des images puisque cet ensemble
ne contient que bnéléments.
Démontrons maintenant l’injectivité3. On suppose
x=a0+a1b+· · · +an−1bn−1
On peut adopter un algorithme "glouton" en cherchant d’abord les "plus gros mor-
ceaux" c’est à dire le nombre an−1de bn−1contenus dans x. Comme
0≤a0+a1b+· · · +an−2bn−2≤bn−1−1
3On peut présenter cette démonstration comme une analyse-synthèse. L’analyse correspond
à l’injectivité ou à l’unicité, son argumentation est algorithmique. La synthèse correspond à la
surjectivité ou à l’existence, son argumentation repose sur la théorie des ensembles
Cette création est mise à disposition selon le Contrat
Paternité-Pas d’utilisations commerciale-Partage des Conditions Initiales à l’Identique 2.0 France
disponible en ligne http://creativecommons.org/licenses/by-nc-sa/2.0/fr/
2Rémy Nicolai Aintroalgo