PTSI - Cours d’informatique VI. Invariants de boucles
En remarquant que pour x, y entiers avec x6yon a x6⌊x+y
2⌋6y, on montre que le variant de
boucle entier b−adiminue strictement `a chaque it´eration, il finit donc par devenir strictement n´egatif
et la boucle TantQue se termine :
valeur de avaleur de bvaleur de cvaleur de b−a
x y ⌊x+y
2⌋y−x
⌊x+y
2⌋+ 1 y⌊x+y
2⌋y− ⌊x+y
2⌋ − 16y−x−1< y −x
valeur de avaleur de bvaleur de cvaleur de b−a
x y ⌊x+y
2⌋y−x
x⌊x+y
2⌋ − 1⌊x+y
2⌋ ⌊x+y
2⌋ − 1−x6y−1−x < y −x
5)
Entr´ee: variable enti`ere n
Sortie: variable enti`ere pdont la valeur est ´egale `a n!
D´ebut
p←1
Pour kallant de 1`a nfaire
p←p×k
FinPour
Fin
On montre qu’`a la fin de chaque it´eration pvaut
i=k
Y
i=1
i.
6)
Fonction: somme(t)
Action: Calcul de la somme sdes valeurs d’un tableau de nombres t
D´ebut
s←0
Pour kallant de 0`a longueur(t)−1faire
s←s+tk
FinPour
Renvoyer s
Fin
On montre qu’`a la fin de chaque it´eration svaut
i=k
X
i=0
ti.
7) On montre que i+jdemeure ´egal `a longueur(m)−1 puis que pour tout k∈J0; i−1Kon a mkqui
vaut mlongueur(m)−1−k.
8) On montre que la propri´et´e «la valeur vest pr´esente parmi les ´el´ements de td’indices compris entre
aet b»est un invariant de boucle.
Si la boucle TantQue se termine, deux cas se pr´esentent lors de la derni`ere ´etape :
•c+ 1 > b soit c>bd’o`u avaut bet donc vn’´etait pas pr´esente dans le tableau.
•c−1< a soit c6ad’o`u avaut bet donc vn’´etait pas pr´esente dans le tableau.
9)
Fonction: PuissanceDeux(n)
Action: D´etermine si l’entier nstrictement positif est une puissance enti`ere de 2
D´ebut
d←n
TantQue ddivisible par 2faire
d←d
2
FinTantQue
Si d= 1 alors
Renvoyer Vrai
sinon
Renvoyer Faux
FinSi
Fin
On consid`ere comme variant de boucle l’exposant ede 2 dans la d´ecomposition de den produit de
facteurs premiers. Si nest pair eest un entier non nul qui diminue de 1 `a chaque it´eration, il finit
donc par s’annuler donc ddevient impair et la boucle TantQue se termine.
Si on note ǫl’exposant de 2 dans la d´ecomposition de nen produit de facteurs premiers, on v´erifie
que d2ǫ−edemeure ´egal `a ndonc `a la fin de l’algorithme comme evaut 0 on en d´eduit que d2ǫvaut
nor la valeur de dest impaire donc nest une puissance enti`ere de 2 si et seulement si dvaut 1.
www.emmanuelmorand.net 5/5 PTSI1516CoursInfo06