Adloun

informatique (MP2I/MPI) · Chapitre 5 · Application directe du cours

Problème — : trois régimes, résolus à la main

Récursivité · niveau 3 (difficile)

Énoncé

Le programme interdit le théorème-maître et demande des encadrements ad hoc. On va voir pourquoi il n'en faut pas.

  • Pour constante, résoudre la récurrence pour , , .
  • Pour , faire de même.
  • À quels algorithmes du livre correspondent les cinq cas rencontrés ?

Corrigé

Posons . L'arbre des appels a niveaux, et le niveau compte appels portant chacun sur éléments.

1. Coût constant par appel. Le niveau coûte , et le total est la somme géométrique .

  • : .
  • : .
  • : , car .

Mesuré, en comptant les nœuds de l'arbre :


n = 1024 : a=1 -> 11 noeuds   a=2 -> 2047 noeuds    a=3 -> 88573 noeuds
n = 4096 : a=1 -> 13 noeuds   a=2 -> 8191 noeuds    a=3 -> 797161 noeuds
verification : k+1 = 11 ; 2n-1 = 2047 ; (3^11-1)/2 = 88573

2. Coût linéaire par appel. Le niveau coûte . Tout tient dans la raison .

  • , raison : la somme converge, . La racine domine.
  • , raison : tous les niveaux coûtent , il y en a , donc . Tous les niveaux pèsent pareil.
  • , raison : la somme est dominée par son dernier terme, . Les feuilles dominent.

Mesuré :


n = 1024 : a=1 -> 2047     a=2 -> 11264      a=3 -> 175099
verification : 2n-1 = 2047 ; n(log2 n + 1) = 1024 x 11 = 11264

Ce que ces six calculs montrent, et c'est la raison de la consigne du programme : il n'y a rien à retenir d'autre que la raison de la suite géométrique des coûts par niveau. Si elle est , la racine paie tout ; si elle vaut , on multiplie par le nombre de niveaux ; si elle est , les feuilles paient tout. Un théorème-maître ne dit rien de plus, et il masque ce qui se voit ici en trois lignes.

3. Les algorithmes.

  • , : recherche dichotomique, — exercice plus haut.
  • , : parcours d'un arbre binaire complet, — chapitre chap:arbres.
  • , : tri par partition-fusion, — problème précédent.
  • , : recherche du -ième plus petit par partition, — chapitre chap:diviser.
  • , : multiplication de Karatsuba, — chapitre chap:diviser. C'est le cas qui justifie l'astuce : passer de quatre à trois multiplications de demi-tailles fait tomber l'exposant de à .

Exercices semblables

Le cours du chapitre · Tous les exercices du chapitre