Le but de cet exercice est d'etudier un algorithme qui inverse les ´ el´ ements d'un tableau sans utiliser une struc- ´
ture supplementaire. La fonction ´ swapp permet d'inverser les el´ ements ´ t[i] et t[j]. La fonction miroir inverse les
el´ ements d'un tableau. Le code de ces fonctions suit. L'appel ´ len(tab) renvoie le nombre d'el´ ements du tableau ´
tab. L'instruction n%2 renvoie la valeur de n modulo 2.
def swapp (tab, i, j):
aux = tab[i]; tab[i]=tab[j]; tab[j]=aux
def miroir (tab):
n = len(tab)
j = n/2
if (n%2 == 0): # Si n est pair
i = n/2 - 1
else:
i = n/2
while (j<n):
swapp(tab, i, j)
i = i -1
j = j +1
Question 3
Demontrer par r ´ ecurrence sur ´ k ∈ {0, · · · , k*}, les propriet´ es suivantes : ´
1. ik = i0 − k et jk = j0 + k ;
2. tabk[0 · · ·ik] = tab0[0 · · ·ik] et tabk[jk · · · n] = tab0[jk · · · n];
3. tabk[ik + 1 · · · jk − 1] est le miroir de tab0[ik + 1 · · · jk − 1].
en deduire la validite de lalgorithme
jarrive pas a demontrer la validite de cette algo