7. BONUS : La dichotomie s’appuie sur la comparaison entre xet la m´ediane de `[a:b].La connaissance
de la m´ediane peut donc rendre de grands services. On donne ici une m´ethode pour calculer une
pseudo-m´ediane (pour les d´etails voir le sujet d’option informatique de Centrale 2012) sur un tableau
non tri´e.
Pour un tableau de taille n= 3k,on utilisera l’algorithme de recherche d’une pseudo m´ediane suivant:
•si k= 0,on retourne directement le seul ´el´ement consid´er´e ;
•sinon, on regroupe les ´el´ements du tableau par 3, on calcule les 3k−1m´edianes de ces groupes,
puis on it`ere le processus sur ces 3k−1m´edianes. On obtient 3k−2nouvelles m´edianes. De proche
en proche, il ne reste qu’un seul nombre que l’on retourne.
(a) ´
Ecrire une fonction mediane(t,i,j,k) prenant en entr´ee un tableau tet trois indices distincts
i, j, k et retournant un indice de la m´ediane, parmi les trois ´el´ements t[i], t[j], t[k].
(b) Pour appliquer la m´ethode, on pourra supposer le tableau de taille 3k, placer dans une premi`ere
´etape les m´edianes de blocs de trois en positions 3i, puis prendre les m´edianes de ces m´edianes et
les placer en position 9i, etc. Appliquer la m´ethode sur [7,1,4,9,8,5,3,2,6] et justifier que l’on
obtient 4.
(c) ´
Ecrire une fonction calculant une pseudo m´ediane. Cette fonction travaillera obligatoirement dans
le tableau initial, sans en cr´eer de nouveau, et en maintenant globalement invariant l’ensemble
des valeurs pr´esentes dans le tableau de taille 3k.
Donner en fonction de k, un ordre de grandeur du nombres de comparaisons.
2 Recherche de racine d’une fonction
2.1 Exercice : Dichotomie et suites adjacentes.
Une banque propose ce placement : la 1`ere ann´ee, le capital augmente de t%,la 2`eme ann´ee de t% et la 3`eme
ann´ee de (t+ 1) %.L’augmentation de capital est de 8 % au bout des trois ans. On souhaite connaˆıtre une
valeur approch´ee de t. Le banquier dit que tvaut environ 2,4%.Peut-on lui faire confiance ?
1. Justifier que tv´erifie l’´equation t3+ 301t2+ 30200t−70000 = 0.
On d´efinit l’application gpar g: [0; +∞[→R
x7→ x3+ 301x2+ 30200x−70000
2. ´
Ecrire une fonction g(x) qui retourne la valeur de g(x).
3. Justifier math´ematiquement que l’´equation g(x) = 0 admet une unique solution, not´ee α, sur l’intervalle
[0; +∞[ et que gest strictement croissante sur [0,3].Donner les valeurs de g(0) et g(3).
On construit deux suites (un)n∈Net (vn)n∈Ntelles que u0= 1, v0= 3 et pour tout entier naturel non
a :
Si g(un+vn
2)>0,alors un+1 =unet vn+1 =un+vn
2.
Si g(un+vn
2)≤0,alors un+1 =un+vn
2et vn+1 =vn.
4. Montrer que les suites (un)n∈Net (vn)n∈Nsont `a termes positifs, qu’elles sont adjacentes et qu’elles
convergent vers α.
5. ´
Ecrire une fonction rechercheRacine(eps) qui retourne une valeur de α`a εpr`es. Il suffit de calculer
unet vntels que |vn−un|< ε et de retourner un+vn
2.En effet, on sait que, pour tout n∈N, α est
encadr´e par unet vn.
2