MATH-F-307 Mathematiques discretes Professeur : Samuel Fiorini Auteur : Septembre a Decembre 2010 Jeremy Page Remerciements Je tiens a remercier tout particulierement Antoine Dewilde, Valerie Pirenne, Yves-Remi Van Eycke, Sophie Vervier et Jeremy Vion pour leurs relectures attentives et leurs commentaires qui ont permis de relever plusieurs erreurs et permettre ainsi l'amelioration de mes notes. i Table des matières 1 Comptage élémentaire 1 2 Récurrences 9 9 9 10 11 12 12 12 16 16 16 17 18 20 22 22 24 24 24 25 3 Fonctions génératrices 27 1.1 1.2 1.3 1.4 1.5 1.6 Principes de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Factorielles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Coecients binomiaux I . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Coecients binomiaux II . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Coecients binomiaux III (applications) . . . . . . . . . . . . . . . . . . . . . . . . . . Preuves bijectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.6.1 Arbres etiquetes a n sommets . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.6.2 Arbres binaires enracines et triangulations d'un polygone . . . . . . . . . . . . 2.1 Exemples recurrents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.1 Nombres de regions delimitees par n droites dans le plan . . . . . . . . . . . . 2.1.2 Dallage d'un chemin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.3 Tri fusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Recurrences lineaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.1 Recurrences lineaires du 1er ordre . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.2 Recurrences lineaires homogenes a coecients constants . . . . . . . . . . . . . 2.2.3 Recurrences lineaires non-homogenes a coecients constants . . . . . . . . . . 2.3 Recurrences diviser pour regner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.1 Recherche binaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.2 Solution exacte de la recurrence pour le tri fusion . . . . . . . . . . . . . . . . 2.3.3 Recurrences diviser pour regner generales . . . . . . . . . . . . . . . . . . . . 2.3.4 Application : complexite multiplication-matricielle . . . . . . . . . . . . . . . . 2.4 Autres types de recurrences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4.1 Calcul d'une racine carree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4.2 Fractions continuees . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5 Plus d'applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5.1 Probleme de la paire la plus proche . . . . . . . . . . . . . . . . . . . . . . . . 2.5.2 Fermeture transitive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 Nombres de Catalan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Retour sur les nombres de Fibonacci . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fonctions generatrices ordinaires I . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fonctions generatrices ordinaires II (recurrences lineaires) . . . . . . . . . . . . . . . . Fonctions generatrices ordinaires III (applications) . . . . . . . . . . . . . . . . . . . . 3.5.1 Quicksort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.5.2 Rendre la monnaie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fonctions generatrices exponentielles . . . . . . . . . . . . . . . . . . . . . . . . . . . . La methode symbolique I (objets non etiquetes) . . . . . . . . . . . . . . . . . . . . . La methode symbolique II (objets etiquetes) . . . . . . . . . . . . . . . . . . . . . . . . Nombres de Bernouilli . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ii 1 1 3 4 6 6 6 7 27 29 30 33 33 33 36 37 37 38 40 TABLE DES MATIERES iii 4 Comportements asymptotiques 43 5 Entropie 53 4.1 Nombres harmoniques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2 Factorielles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2.1 Formule de Wallis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2.2 Formule de Stirling (et de de Moivre) . . . . . . . . . . . . . . . . . . . . . . . 4.3 Formule d'Euler-Maclaurin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3.1 Utilite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3.2 Application : approximation de ln(n!) . . . . . . . . . . . . . . . . . . . . . . . 4.4 Methodes analytiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2 Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2.1 Compression de donnees . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2.2 Arbres de Human . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 44 45 47 47 48 49 50 53 54 54 55 Chapitre 1 Comptage élémentaire 1.1 Principes de base Définition. { Deux ensembles ont la m^eme cardinalite (taille) s'il existe une bijection de l'un vers l'autre. { Un ensemble E a une cardinalite n (pour n 2 N) s'il est en bijection avec [n] := 1; 2; : : : ; n. Remarque. n=0 n=1 [n] = [0] = ; [n] = 1 Ceci est note jE j = n, parfois #E = n. On dit alors que E est Si A1; A2; : : : ; Ak sont des ensembles nis disjoints P :k { jA1 [ A2 [ : : : [ Ak j = jA1j + jA2j + : : : + jAk j Q=k i=1 jAij { jA1 A2 : : : Ak j = jA1j jA2j : : : jAk j = i=1 jAij ni. Exemple. A1 = fsalade grecque, carpacciog A2 = fspaghetti diable, steak frites, moulesg (entrees) (plats principaux) #total de plats = jA1 [ A2 j = 5 #total de menus entree + plat principal = jA1 A2 j = jA1 j jA2 j = 6 Définition. 1.2 A1 A2 : : : Ak = f(a1 ; a2 ; : : : ; ak ) j a1 2 A1 ; a2 2 A2 ; : : : ; ak 2 Ak g Factorielles n! := 1 2 : : : n = n Y k=1 k C'est le nombre de facon de ranger (ordonner) n objets distincts, de fonctions bijectives entre deux ensembles de taille n. Remarque. { Un produit vide est toujours egal a 1 ; { Une somme vide est toujours egale a 0. 1 2 EMENTAIRE CHAPITRE 1. COMPTAGE EL Donc 0! = 1. Demonstration. Soit f : [n] ! [n] bijective n choix pour f (1) n 1 choix pour f (2) n 2 choix pour f (3) ... 1 choix pour f (n) Au total, on a : Exemple. n (n 1) (n 2) : : : 2 1 = n! Nombre d'ordres totaux sur E = fa; b; cg est 3! = 3 2 1 = 6. a<b<c a<c<b n! grandit tres vite : n n! b<a<c b<c<a c<a<b c<b<a 0 1 2 3 4 5 6 1 1 2 6 24 120 720 ::: ::: 10 3628800 ::: ::: au-dela, les algorithmes deviennent lents a les enumerer. On parle d' explosion combinatoire. Remarque. (n!)2 = (1 2 3 : : : n)(n : : : 3 2 1) n Y k(n k + 1) = | {z } k=1 polyn^ome du second degre en k Donc n k(n k + 1) n + 1 2 2 n 1 n Y Y ) n (n!)2 4 (n + 1)2 k=1 | {z } nn k=1 | {z ( )n(n+1) n n n ) n n! 12 (n + 1)n 1 4 81 k n } 2 2 Gauss (9 ans) a utilise un truc semblable pour calculer 1 + 2 + : : : + n. Pour n grand, on a n 2 log2 n log2 n! n + n log2(n + 1) n log2 n 3 EMENTAIRE CHAPITRE 1. COMPTAGE EL On a vu pour n 2 N n! = #bijections de [n] dans [n] = #injections de [n] dans [n] Pour n; k 2 N avec k n #injections de [k] dans [n] = |{z} n (n 1) : : : | {z } #choix #choix pour pour f (1) f (2) sachant f (1) = (n n! k)! (|n k + 1) {z } #choix pour f (k) sachant f (1);f (2);:::;f (k 1) C'est le nombre de suites de k objets pris parmi n, sans repetition (selection repetition ). Exemple. ordonnee sans Il y a (26264)! mots sur l'alphabet fa; b; : : : ; z g dont les lettres sont dierentes : (abcd; abce; : : : ; wxyz) 1.3 Coefficients binomiaux I ! n := #sous-ensembles de taille k d'un ensemble de taille n k Il faut lire n choose k. Deni pour n; k 2 N (k n). Proposition (Symetrie). ! n k = n ! n k Appelons E notre ensemble de taille n. Le passage au complementaire est une bijection entre les sous-ensembles de E de taille k et les sous-ensembles de E de taille n k. Proposition (Absorption/Extraction). Demonstration. ! n k Demonstration. Demontrons nk k = nk nk = n nk 1 1 ! 8n; k 2 N0 1 1 par double comptage. ! n k = #manieres de choisir un sous-ensemble X E de taille k, puis un element e dans X k ! 1 = #manieres de choisir un element e de E , puis un sous-ensemble Y E nfeg de taille k 1 1 On voit ! ! n n 1 k=n k k 1 n n k 4 EMENTAIRE CHAPITRE 1. COMPTAGE EL Formellement, f(X; e) j X E; jX j = k; e 2 X g et f(e; Y ) j e 2 E; Y E nfeg; jY j = k 1g sont deux ensembles de tailles respectives ! n k = nk nk = z n(n et n nk 11 qui sont en bijection (X; e) ! (e; X nfeg). nk k ! 1 = nn 1 1 kk 1 = ( n! n k)! }| { 1) : : : (n k + 1) k(k 1) : : : 1 | {z } =k ! ) Proposition n k ! n k ! 2 = ::: 2 n k | 0 {z =1 ! } = k!(nn! k)! (Addition/Induction). ! n k Demonstration. = n ! 1 + k n k 1 1 ! 8n; k 2 N0 (k n 1) Fixons e 2 E . Deux cas sont possibles pour un sous-ensemble S E de taille k : ! Cas 1 : S 63 e, il y a k 1 tels S . ! n 1 Cas 2 : S 3 e, il y a k 1 tels S . n Formellement, fS E j jS j = kg = fS E j jS j = k; S 63 eg [ fS E j jS j = k; S 3 eg 1.4 Coefficients binomiaux II Prenons x; y 2 R (ou Q, ou C, : : :). (x + y )0 : 1 (x + y )1 : 1x + 1y (x + y )2 : 1x2 + 2xy + 1y2 3 3 (x + y ) : 1x + 3x2y + 3xy2 + 1y3 (x + y)4 : 1x4 + 4x3y + 6x2y2 + 4xy3 + 1y4 ... 5 EMENTAIRE CHAPITRE 1. COMPTAGE EL Appelons an;k le coecient de xn (x + y )n = Alors 8 > < ( ) > : Idee : k yk n X k=0 dans (x + y)n (8n; k 2 N; k n). an;k xn k yk = (x + y)(x + y) : : : (x + y) | {z = coecient de xn = 1 = coecient de yn = 1 = an 1;k + an 1;k 1 an;0 an;n an;k n>k1 (x + y)n = (x + y)(x + y)n , n X k=0 an;k xn k y k nX1 = (x + y) = = nX1 k=0 nX1 k=0 k=0 an 1;k } n fois an 1;k xn k y k 1 xn 1 k y k + nX1 k=0 | an 1;k xn k yk + ! an 1;k xn 1 k yk+1 {z remplacer k + 1 par k n X k=1 an 1;k 1 xn k yk Et ceci 8x, 8y, donc on peut (doit) identier les coecients de xn Pour n > k 1 : an;k = an 1;k + an 1;k 1. Théorème (Formule du bin^ ome). ! n k an;k = } k yk a gauche et a droite. 8n; k 2 N Demonstration. 1. Les nombres an;k sont entierement determines par () ; 2. En posant an;k = nk on obtient une solution. ) an;k = Triangle de Pascal : Formule du bin^ome : n=0: n=1: n=2: n=3: n=4: n=5: ! n k 8n; k 2 N 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 n X ! n n k k (x + y ) = x y k=0 k n On peut etendre le triangle de Pascal a tout un demi-plan (par des zeros) en preservant l'addition/induction. 6 EMENTAIRE CHAPITRE 1. COMPTAGE EL Ca colle avec la denition : ! n k = #sous-ensembles a k elements d'un ensemble a n elements Proposition. m X n=k 1.5 ! n k = m+1 n+1 ! 8n; k 2 N Coefficients binomiaux III (applications) 1. #mots de n bits contenant k uns (et donc n k zeros) = nk ; 2. #plus courts chemins de (0; 0) a (a; b) dans la grille des entiers = a+a b = a+b b ; Idee : encoder les chemins par des mots de a + b bits comportant a uns (ou b zeros). 3. #solutions ( x1 ; x2 ;: : : ; xd ) entieres (2 Nd ) de l'equation x1 + x2 + : : : + xd = c avec c 2 N = d+d c 1 1 = d+cc 1 ; Idee : encoder les solutions par des mots de (d 1) + c bits ayant d 1 uns et c zeros. 4. #manieres de selectionner k objets pris parmi n, sans ordre, avec repetition = #solutions en nombres naturels de x1 + x2 + : : : + xn = k (ou xi = #objets de type i selectionnes) = n+n k 1 1 = n+kk 1. La regle de quatre : selection de k objets pris parmi n ordonnee non ordonn ee n n n ! sans repetition k (n k)! = k! k n+k 1 avec repetition nk k 1.6 1.6.1 Preuves bijectives Arbres étiquetés à Théorème (de Cayley (1889)). n sommets #arbres etiquetes a n sommets = nn 2 Denissons an := #arbres etiquetes a n sommets An := farbres etiquetes a n sommets avec deux sommets speciaux (peuvent concider)g En general jAnj = n2 an. Le but est de montrer jAnj = nn. On va trouver une bijection entre An et [n][n]. Soit f : [n] ! [n] une fonction et soit G~ (f ) le graphe dirige dont les sommets sont 1; 2; : : : ; n et les arcs sont (i; f (i)) avec i = 1; 2; : : : ; n. Chaque composant de G~ (f ) contient un unique cycle dirige. Demonstration. Définition. M : = fensemble des sommets de G~ (f ) qui apparaissent sur un cycle dirigeg = fi1; i2; : : : ; img avec i1 < i2 < : : : < im 7 EMENTAIRE CHAPITRE 1. COMPTAGE EL E crivons f=M = i1 i2 : : : im f (i1 ) f (i2 ) : : : fim ! f=M est une bijection, donc le vecteur des images contient tous les nombres de M , dans un certain ordre. Remarque. Idee : on represente cet ordre par f (i1 ) f (i2 ) f (i3 ) : : : f (im ) L'arbre correspondant a f est obtenu a partir de G~ (f ) en remplacant les arbres dans M par f (i1 ) f (i2 ) f (i3 ) : : : f (im ) et en oubliant l'orientation des autres arcs. Cette correspondance est une bijection car a tout arbre on peut faire correspondre une fonction, de plus, ces correspondances sont reciproques l'une de l'autre. 9 deux fonctions : : [n][n] ! An : An ! [n][n] qui verient = idjAn = idj[n] n [ ) ; sont des bijections et = 1; = 1.6.2 ] 1 Arbres binaires enracinés et triangulations d’un polygone Arbres binaires enracines a 2 feuilles : #total = 1 ; a 3 feuilles : #total = 2; a 4 feuilles : #total = 5. Quand on compte des objets, il faut ^etre precis sur ce qu'on compte exactement. En particulier, sur la maniere de decider quand deux objets sont dierents. Dans ce cas precis : { Il y a un sommet special : la racine ; { On distingue gauche et droite. Définition (Arbre binaire enracine). Un arbre binaire enracine est un arbre (c'est- a-dire un graphe connexe, sans cycle) dont tous les sommets ont pour degre 1; 2 ou 3. Un et un seul sommet a pour degre 2, la racine. Chaque ar^ete porte un label \G" ou \D". Remarque. Probleme avec la denition : deux arbres identiques peuvent ^etre dierents car leurs etiquettes sont dierentes. Deux arbres binaires enracines T1 et T2 sont isomorphes (equivalents) s'il existe une bijection des sommets de T1 sur les sommets de T2 telle que : (i) Toute ar^ete de T1 est envoyee sur une ar^ete de T2 ; (ii) Idem avec les non-ar^etes ; (iii) Les labels sur les ar^etes sont preserves. (i) et (ii) ! isomorphisme de graphes. Théorème. #arbres binaires enracines #triangulations d'un a n feuilles (a un isomorphisme pres) = polygone convexe a n + 1 c^otes EMENTAIRE CHAPITRE 1. COMPTAGE EL 8 Idee de la demonstration : on va trouver une bijection entre An := farbres binaires enracines a n feuilles, pris a un isomorphisme presg et Tn+1 := ftriangulations d'un (n + 1)-gone convexeg Numerotons les ar^etes d'un (n + 1)-gone, disons P , de 0 a n dans le sens anti-horlogique (et on met 0 en haut ). E tant donne une triangulation de P , nous obtenons un arbre binaire enracine a n feuilles en placant { La racine a l'interieur du triangle adjacent a 0 ; { Un sommet (interne) a l'interieur de chaque autre triangle ; { Les n feuilles dans l'interieur (relatif) des c^otes 1 jusque n . Puis en reliant les sommets places dans des triangles adjacents, ainsi que chaque feuille avec le sommet place dans le triangle contenant le c^ote correspondant. Et les labels? On utilise le sens anti-horlogique. Comment inverser cette correspondance ? Tn+1 ! An pour trouver une correspondance reciproque An ! Tn+1 Chapitre 2 Récurrences 2.1 2.1.1 Exemples récurrents Nombres de régions délimitées par n droites dans le plan Considerons n droites dans le plan, en position generale. Combien de regions delimitent-elles ? Problème. Définition (Position generale). Toute paire de droites s'intersectent en 1 point et tout triple de droites ont une intersection ;. En general, si on part d'un arrangement de n 1 droites et qu'on en rajoute une, on cree exactement n nouvelles regions. Remarque. On voit donc que #r egions pour n droites ne depend pas des droites (uniquement de n). Posons 2(n) := #regions delimitees par n droites (en position generale). 2(n) = 2(n 1) + n 8n 1; 2(0) = 1 Pour resoudre cette recurrence, on la deroule : 2(n) = n + 2(n 1) = n + (n 1) + 2(n 2) = ::: = n + (n 1) + (n 2) + : : : + 1 + |2{z(0)} = n(n2+ 1) + 1 = n(n2 1) + n + 1 ! n ! n =1 ! n = 2 + 1 + 0 Considerons maintenant n plans dans l'espace (de dimension 3) en position generale. Définition (Position generale). L'intersection de k plans (choisis dans l'arrangement) dimension 3 k, pour k = 1; 2; 3; 4 [dim ; = 1]. Posons 3(n) := #regions delimitees par n plans (en position generale). Par analogie dimensionnelle, on obtient la recurrence : 3(n) = 3(n 1) + 2(n 1) 8n 1; 3(0) = 1 9 est de 10 CHAPITRE 2. RECURRENCES En deroulant : 3(n) = 2(n !1) + 3(n ! 1) ! n 1 n 1 n 1 = 2 + 1 + 0 + 3(n 1) " ! ! !# " ! n 1 n 1 n 1 n 2 = 2 + 1 + 0 + 2 + " ! ! !# 0 0 0 + : : : + 2 + 1 + 0 + |3{z(0)} {z } =1=(n) | (0) n ! 2 + 1 n 0 2 !# 0 ! ! 2 ! ! = n3 + n2 + n1 + n0 Tout ceci se generalise en dimension quelconque : d(n) = d(n 1) + d 1(n 1) 8n 1; d(0) = 1 On trouve : ! ! ! ! n n n n d(n) = d + d 1 + : : : + 1 + 0 2.1.2 Dallage d’un chemin Problème. De combien de mani eres peut-on daller un chemin de 2 metres de large et n metres de long, avec des dalles de 1m 2m ? Notons pn := #manieres de daller un chemin de n metres. On a la recurrence : pn = p n 1 + pn 2 8n 3; p1 = 1; p2 = 2 On obtient : (p1; p2; p3; p4; : : :) = (1; 2; 3; 4; 5; 8; 13; 21; : : :) Ce sont des nombres de Fibonacci ( 1200). Fn (n 2 N) est deni par : () Fn = Fn 1 + Fn 2 8n 2; F0 = 0; F1 = 1 On voit (p1; p2; p3; p4; : : :) = (F2; F3; F4; F5; : : :). Pn = Fn+1 8n 1 Rappel. y 00 = y 0 + y a des solutions de la forme y = ex . Ici : on cherche des solutions de la forme n pour certains 2 Rnf0g. Conditions sur ? n = n 1 + n 2 8n 2 6=0 2 , =+1 p 1 ,= 2 5 p Remarque. 1+2 5 est le nombre d'or. 11 CHAPITRE 2. RECURRENCES p p Donc 1+2 5 n et 1 2 5 n sont deux solutions de (). Et par consequent, toute suite de la forme p !n p !n 1 + 1 5 5 c1 + c2 2 2 est solution de (), 8c1; c2 2 R, car l'ensemble des suites solutions de () forme un sous-espace vectoriel de l'espace vectoriel RN des suites reelles (N ! R). La dimension de ce sous-espace est exactement 2 (intuitivement : 2 degres de liberte ! le choix de F0 et F1p; tout est deptermin e quand on conna^t F0 et F1). n n 5 5 1+ 1 Or 2 et 2 sont lineairement independants. Donc leurs combinaisons lineaires sont toutes les solutions de (). p !n p !n 1 1 + 5 + c2 2 5 pour certains c1; c2 2 R ) Fn = c1 2 On a : p !0 p !0 1 + 5 1 n=0: 0 = F0 = c1 2 + c2 2 5 p !1 p !1 5 1 + 1 n=1: 1 = F1 = c1 2 + c2 2 5 8 > c + c2 =0 > < 1 ! ! p p ,> 1+ 5 1 5 > : 2 c1 + 2 c2 = 1 On trouve : 8 1 > > > <c1 = p 5 > 1 > > :c2 = p 5 p 1 + 1 5 Fn = p 2 5 " Remarque. 2.1.3 !n p n Fn p15 1+2 5 pour n grand. ! # 1 p5 n 2 Tri fusion 8n 2 N tant donne un vecteur de taille N , le tri fusion le partitionne en deux vecteurs de taille l N2 m et E j k N puis s'appelle recursivement sur chacun de ces deux vecteurs, puis fusionne les vecteurs resultants. 2 Appelons CN le nombre de comparaisons eectuees par cet algorithme. Exemple. 4 1 3 2 .& 4 1 3 2 + + 1 4 2 3 &. 1 2 3 4 12 CHAPITRE 2. RECURRENCES Pour le moment, on prend N = 2n (n 0). CN = Cd N e + Cb N c + N 2 C2n = 2C2n On divise par 2n : 8N 2; C1 = 0 2 1 + 2n pour N = 2n , C22nn = C22nn 1 +1 | {z } | {z } 1 dn et C2 = 0 = d0. dn (n 1) 1 0 ) d n = 1 + dn 1 = 1 + 1 + dn 2 d0 = |1 + 1 + 1 +{z1 + : : : + 1} + |{z} n fois =n =0 C2n = 2n n Donc CN = N log2 N N = 2n , n = log2 N 2.2 2.2.1 Récurrences linéaires Récurrences linéaires du 1er ordre xn = cn xn 1 + dn xn = n X i=1 di n Y j =i+1 = dn + dn 2.2.2 8n 1; x0 = 0 cj 1 cn + dn 2 cn 1 cn + : : : + d1 c2 : : : cn Récurrences linéaires homogènes à coefficients constants xn = cd 1 xn 1 + cd 2 xn 2 + : : : + c0 xn pour n d, ou c0; c1; : : : ; cd 2 C et c0 6= 0. L'ordre d'une telle recurrence est d. d (Polyn^ome caracteristique). Le polyn^ome caracteristique associe est P (t) := td cd 1 td 1 cd 2 td 2 : : : c0 t0 L'objectif est de comprendre les solutions de ces recurrences, c'est-a-dire les suites (xn)n2N qui satisfont l'equation 8n d. Observations : Définition 13 CHAPITRE 2. RECURRENCES 1. Une telle suite est entierement determinee par ses d premieres valeurs x0; x1; : : : ; xd 1 appelees conditions initiales. 2. L'ensemble des solutions forme un sous-espace vectoriel de CN. Demonstration. En eet, si (xn )n2N et (yn )n2N sont solutions et ; 2 C, alors la suite (zn )n2N denie par zn := xn + yn 8n 0 satisfait, pour n d : zn = xn + yn = (cd 1xn 1 + : : : + c0xn d) + (cd 1yn 1 + : : : + c0yn d) = cd 1(xn 1 + yn 1) + cd 2(xn 2 + yn 2) + : : : + c0(xn d + yn d) = cd 1zn 1 + : : : + c0zn d ) (zn)n2N est solution. Rappel. { Tout polyn^ome complexe de degre d 1 peut se factoriser comme un produit de d facteurs de degre 1. { 2 C est une racine de multiplicite m d'un polyn^ome complexe p(t) 2 [t] si p(t) est divisible par (t )m mais pas par (t )m+1 . Théorème. Consid erons la relation de recurrence d'ordre d 1 xn = cd 1 xn 1 + : : : + c0 xn d pour n d, ou c0 ; : : : ; cd 1 2 C et c0 6= 0. Notons m( ) pour la multiplicite d'une racine du polyn^ome caracteristique p(t) associe. Alors, 8 racine et naturel j m( ) 1, la suite (nj n )n2N est solution. Reciproquement, toute solution est une combinaison lineaire de ces d solutions canoniques. Une application est que pour des conditions initiales x0; x1; : : : ; xd 1 donnees, on peut ecrire une forme close pour xn. En eet, par le theoreme, nous avons 8n 2 N xn = X m(X ) 1 racine j =0 ;j (nj n ) ou les ;j sont les d coecients de la combinaison lineaire. En prenant cette equation pour chaque n 2 f0; 1; : : : ; d 1g, on obtient un systeme de d equations lineaires qui sont lineairement independants. On peut resoudre ce systeme et calculer les ;j . Exemple. 1. xn = 5xn 1 6xn 2 p(t) = t2 5t + 6 = (t 8n 2; x0 = 0; x1 = 1 3)(t 2) Racines : t = 3 ou t = 2 (multiplicite 1 chacune). Donc xn = 3n + 2n avec ( x0 x1 = 0 = 30 + 20 = + , = 1 = 3 + 2 ) xn = 3n 2n ( = 1 = 1 14 CHAPITRE 2. RECURRENCES 2. xn = xn 1 xn 2 p(t) = t2 + t + 1 8n 2; x0 = 0; x1 = 1 p p Racines : t = 1 2 3i ou t = 1+2 3i (multiplicite 1 chacune). .. . p n 1 + 3i ) xn = 2 3 Lemme 1. Soit p(t) 2 C[t] un polyn^ ome complexe de degre d 1. Si est multiplicite m, alors p( ) = p0 ( ) = : : : = p m 1 ( ) = 0 Demonstration. Par la formule de Taylor, 1 p(t) = p( ) + p0 ( )(t ) + p00 ( )(t )2 + : : : + 2 1 pm 1( )(t )m 1 + 1 pm( )(t )m + : : : + (m 1)! m! 1 pd( )(t )d d! pi (t )m divise p(t) ) pi ( ) = 0 Lemme 2. ! 1 p3i n pi 2 3 ! une racine de 8i < m. Pour tout entier j 1, il existe des coecients entiers 1 ; 2 ; : : : ; j tels que ij = 1 i + 2 i(i (Sans demonstration). 1) + : : : + j i(i 1) : : : (i j + 1) 8i 2 Z racine de multiplicite m d'un polyn^ome p(t) 2 Lemme 3. Si est une Pd i i=0 ci t , alors p(t) = d X i=0 ci ij i = 0 [ ] de degre d, avec Ct 8j 2 f0; : : : ; m 1g Demonstration. d X = = = i=0 d X i=0 j X k=1 j X k=1 ci ij i 0 ci @ k j X 1 k i(i 1) : : : (i k + 1)A i ci i(i 1) : : : (i k + 1) k=1 d X i=0 k pk ( ) = 0 i par Lemme 2 ! par Lemme 1 15 CHAPITRE 2. RECURRENCES Maintenant, nous pouvons demontrer le theoreme. Demonstration. (1) Soit une racine de p(t) et j 2 f0; : : : ; m( ) 1g. Alors (nj n)n2N est solution de la recurrence si et seulement si, 8n d, on a nj n = cd 1 (n 1)j n 1 + : : : + c0 (n d)j n d , nj n = cd 1(n 1)j d 1 + : : : + c0(n d)j 0 d X , 0 = ci(i + (n d))j i (avec cd := 1) i=0 d X 0 j X ! 1 , 0 = ci @ kj ij k (n d)k A i i=0 k=0 ! ! j d X j X k j k i ,0= ( n d) ci i k k=0 i=0 | {z } )( =0 par Lemme 3 )n2N est solution (il y en a d). (2) Soit S l'ensemble des solutions, alors S est un sous-espace vectoriel de CN (l'espace vectoriel des suites complexes). L'application A : S ! Cd (xn)n2N 7! A(x) = (x0; x1; : : : ; xd 1) est lineaire, injective (car toute suite est determinee par ses valeurs initiales, ou encore ker A = f0g), surjective (car Im A = Cd). Donc A est un isomorphisme et dim S = dim Cd = d. (3) Reste a demontrer que les solutions nj n pour racine de p(t) et j 2 f0; : : : ; m( ) 1g sont lineairement independantes (idee : trouver une recurrence telle que un des nnj intervenant dans une dependance lineaire avec j maximum n'est pas solution, alors que les autres le sont). nj n Exemple. xn = 4xn 1 5xn 2 +2xn 3 p(t) = (t 1)2 (t 2) = (t2 2t + 1)(t 2) = t3+4t2 5t+2 On a trois solutions de base 1n ; 1n n; 2n c'est-a-dire 1; n; 2n . Elles sont lineairement independantes car : 1. 1; n sont solutions de xn = 2xn 1 xn 2 alors que 2n n'est pas solution () (2n )n2N n'est pas une combinaison lineaire de (1)n2N et (n)n2N ) ; 2. 1; 2n sont solutions de xn = 3xn 1 2xn 2 alors que n n'est pas solution () (n)n2N n'est pas une combinaison lineaire de (1)n2N et (2n )n2N ). 16 CHAPITRE 2. RECURRENCES 2.2.3 Récurrences linéaires non-homogènes à coefficients constants xn = cd 1 xn 1 + : : : + c0 xn d + en Toute solution est de la forme : xn = solution de l'EHA (xn = cd 1 xn 1 + : : : + c0 xn d ) + solution quelconque, xee de (xn = cd 1xn 1 + : : : + c0xn d + en) \SGENH = SGEHA + SP" ou SGENH = Solution Generale de l'E quation Non-Homogene SGEHA = Solution Generale de l'E quation Homogene Associee SP = Solution Particuliere (n'importe quelle solution de l'equation non-homogene) 2.3 Récurrences diviser pour régner (\Divide and conquer"). Rappel. On a vu que pour N = 2n (n 0) la solution de = CbN=2c + CdN=2e + N 8N 2; C1 = 0 est CN = N log2 N = N lg N (ou lg(x) = log2 (x) pour x > 0). C'est un exemple de recurrence \diviser pour regner". { Tres importantes pour l'analyse d'algorithmiques. { Eets de b: : :c et d: : :e : termes oscillatoires / fractals dans les solutions exactes. CN 2.3.1 Recherche binaire Chercher un nombre dans un vecteur trie. Théorème. Soit BN := #comparaisons eectu ees au pire des cas par une recherche binaire dans un vecteur de taille N . Alors BN = BbN=2c + 1 pour N 2 et B1 = 1. La solution de cette recurrence donne #bits dans l'ecriture de N en base 2. Donc, en particulier, BN = blg N c + 1. Demonstration. j k { Si N est pair : au pire cas, il reste N2 = N2 elements.j k { Si N est impair : dans tous les cas (si echec), il reste N2 . On a bien la recurrence BN = BbN=2c + 1 pour N 2 et B1 = 1. C'est bien le #bits dans l'ecriture binaire de N . Exemple. N = 13 en base 2 : 1101. 4bits = (blg 3c + 1)bits 17 CHAPITRE 2. RECURRENCES 2.3.2 Solution exacte de la récurrence pour le tri fusion CN +1 = Cb N c + Cd N e + N + 1 CN = Cb N c + Cd N e + N CN +1 CN = Cb N c + Cd N e + N + 1 Cb N c Cd N e N = Cd N e Cb N c + 1 +1 +1 2 2 2 2 +1 +1 2 2 2 2 +1 2 2 Pour N pair : Pour N impair : N + 1 N 2 = 2 N N = 2 2 2 N +1 2 = 2 N N 1 2 = 2 N + 1 N + 1 N + 1 N N = 2 2 = N 2+ 1 N N +1 2 = 2 N + 1 2 N = 2 2 N + 1 N 2 = 2 +1 Si on pose DN = CN +1 = N2 + 1 8N 2 N 8N 2 N CN , alors : 8N 2 DN = Db N c + 1 D 1 = C2 C1 = 2 0 = 2 ) DN = blg N c + 1 + 1 2 Théorème. ) CN = (CN CN 1) + (CN 1 = DN 1 + DN 2 + : : : + D1 NX1 = (blg j c + 2) j =1 = (N 1) + CN 2 ) + : : : + ( C2 C1 ) NX1 j =1 blg j c + 1 = (N 1) + #total de bits dans l'ecriture binaire des nombres 1; 2; : : : ; N 1 Exemple. C5 = 12, car : 1#10#11#100# comporte 4 + 8 = 12 symboles. Théorème. CN = N blg N c + 2N 2blg N c+1 18 CHAPITRE 2. RECURRENCES Demonstration. 1; 2; 3; 4; 5; 6; 7; 8; : : : ; N 1 2; 3; 4; 5; 6; 7; 8; : : : ; N 1 4; 5; 6; 7; 8; : : : ; N 1 ... ont 1 bits ont 2 bits ont 3 bits ) CN = (N 1) + (N 1) + (N 2) + (N 4) + : : : + (N 2blg N c) = (N 1) + (N 20) + (N 21) + (N 22) + : : : + (N 2blg N c) = (N 1) + N (blg N c + 1) |(20 + 21 + 22 {z+ : : : + 2blg N c}) = N blg N c + 2N Remarque. 2.3.3 2blg N c+1 Pour N = 2n : N lg N + 2 2n =2b lg N c+1 1 2n+1 = N lg N Récurrences diviser pour régner générales En analyse d'algorithmes, on cherche a majorerlle mco^ut jd'un eme k algorithme qui divise un probl N N N de taille N en problemes de taille (c'est-a-dire ou ) et recombine les solutions obtenues avec un co^ut f (N ). La resolution exacte des recurrences obtenues est problematique (cf. caractere oscillatoire/fractal de certains termes). On se contente du comportement asymptotique. Rappel (sur O; o; ; !; ; , etc.). f; g : N ! R f = O(g) si 9c 2 R+ nf0g; 9n0 2 N : n n0 ) jf (n)j c jg(n)j g = (f ) si f = O(g) jf (n)j = 0 f = o(g) si n!lim +1 jg (n)j g = !(f ) si f = o(g) f = (g) si f = O(g) et g = O(f ) [f et g ont le m^eme ordre de grandeur] f (n) f g si n!lim = 1 [f et g sont asymptotiquement egales] +1 g (n) Exemple. lg n! = (n lg n) nlg n = o(2n ) Pour commencer, x +x a(x) = a a(x) = 0 avec ; 2 R : > 1; 1. 8x > 1 8x 1 19 CHAPITRE 2. RECURRENCES Pour x = n, on trouve : a( n ) = a( n 1 ) + n a( n ) a( n 1 ) n , n = n 1 + Donc 1 a( n ) n n 1 = + + ::: + + n ) a( n) = n n X j =1 j { Cas 1 : > ) a( ) n 1 X j j =1 n = | = =0 car a(x)=0 8x1 ! 1 + 1 1 = n 1 + = n n {z } P1 j 1+ j=0 () { Cas 2 : = ) a( n) = nn { Cas 3 : < On ecrit Donc a( 0 ) 0 | {z } a( a( n ) n n )= n n nX1 k k=0 n 1 k n X = n k=0 | 1 1 {z } = ) a( n) n En remplacant n par x, on trouve { Cas 1 : > : a(x) log n = xlog { Cas 2 : = : a(x) log x xlog = log x x { Cas 3 : < : a(x) x Seulement valables pour x = n. Théorème. Si la fonction a : R ! R v erie x +x a(x) = a a(x) = 0 Alors dlog xe log x { Cas 1 : > : a(x) xlog { Cas 2 : = : a(x) x log x { Cas 3 : < : a(x) x 8x > 1 8x 1 20 CHAPITRE 2. RECURRENCES Demonstration. x a(x) = x + a x x = x + + a 2 x 2 = x + x + a 2 = ::: ! t 1 = x 1 + + : : : + t 1 { Cas 1 : > : { { pour t = dlog xe ! t 2 t a(x) = x t + + : : : + 2 t dlog xe x log x dlog xe log x x dlog xe log x log log x log dlog xe log x x Cas 2 : = : a(x) xdlog xe x log x Cas 3 : < : a(x) x (Master Theorem). Soit 1, > 1 des constantes, et f : N ! R une fonction. Si la suite (an )n2N verie la recurrence : Théorème an = a n + f (n) n l m j k signie (ici) soit n , soit n . Alors (i) Si f (n) = O(nlog ) pour > 0, alors an = (nlog ) ; (ii) Si f (n) = (nlog ), alors an = (nlog lg n) ; (iii) Si f (n) = (nlog + ) pour > 0, et si f n c f (n) pour une certaine constante c < 1 et n grand, alors an = (f (n)). ou 2.3.4 Application : complexité multiplication-matricielle Calculer le produit de 2 matrices n n (taille probleme = n) A = (aij ) B = (bij ) ou i; j 2 [n], avec n X () cij = aik bkj k=1 (produit scalaire de la ieme ligne de A et de la jeme colonne de B ). 21 CHAPITRE 2. RECURRENCES (classique). Calculer les n2 coecients cij avec la formule (). On a n multiplications et n 1 additions par coecient cij . Au total, on a n2 n = n3 multiplications et n2 (n 1) = n3 n2 additions. Ce qui fait O(n3 ) operations arithmetiques. Pour n = 2 : ! ! ! a11 a12 b11 b12 = c11 c12 a21 a22 b21 b22 c21 c22 Algorithme L'algorithme classique calcule c11 = a11 b11 + a12 b21 c12 = a11 b12 + a12 b22 c21 = a21 b11 + a22 b21 c22 = a21 b12 + a22 b22 Ce qui nous fait 8 multiplications et 4 additions. Cependant, il existe un algorithme qui fait mieux (asymptotiquement). Strassen s'en tire avec 7 multiplications et 18 additions. Remarque. d'additions. Algorithme On a inter^et a diminuer le nombre de multiplications, quitte a augmenter le nombre (de Strassen (1969)). Astuce : on calcule les 7 produits : I = (a11 a22 ) (b21 + b22 ) II = (a11 + a22 ) (b11 + b22 ) III = (a11 a21 ) (b11 + b12 ) IV = (a11 + a12 ) b22 V = a11 (b12 b22 ) V I = a22 (b21 b11 ) V II = (a21 + a22 ) b11 On verie : c11 = I + II IV + V I c12 = IV + V c21 = V I + V II c22 = II III + V V II Par exemple : + V = (a11 + a12) b22 + a11 (b12 b22) = a11b22 + a12b22 + a11b12 a11b22 = a11b12 + a12b22 = c12 Attention : ce resultat n'utilise pas la commutativite de R; . Les formules restent vraies dans IV un anneau non commutatif. Pour n pair : on decoupe chaque matrice en 4 sous-matrices n2 n2 : A11 A12 A21 A22 ! B11 B12 B21 B22 ! = C11 C12 C21 C22 ! 22 CHAPITRE 2. RECURRENCES On a encore C11 = A11 B11 + A12 B21 C12 = A11 B12 + A12 B22 C21 = A21 B11 + A22 B21 C22 = A21 B12 + A22 B22 On utilise Strassen pour ecrire c11, c12, c21, c22 avec 7 multiplications et 18 additions. Pour n impair : on rajoute une ligne et une colonne de zeros. 0 10 1 0 0 B 0CCC BBB 0CCC B B ... CA B@ ... CA B @ 0 0 0 0 0 0 Soit T (n) (une majoration sur) #total d'operations arithmetiques pour calculer le produit de 2 matrices n n : n 2 T (n) = 7 T 2 + 18 (n + 1) Master Theorem avec = 7, = 2, f (n) = 18(n + 1)2 . log Comparer f (n) a n log =nlog 7 = nlg 7 = n2;81:::. On a bien f (n) = O(n ) pour un > 0. ) T (n) = (nlog ) = (n2;81:::) = O(n2;82) L'algorithme de Strassen bat l'algorithme classique. A B 2 Remarque. 1. Tout algorithme est de complexite (n2 ) (parce qu'il faut calculer n2 coecients) ; 2. Conjecture : 8 > 0 9 algorithme en O(n2+ ) ; 3. Coppersmith et Vinograd (1990) ! O(n2;376 ) ; Cohn, Kleinberg, Szegedy et Umans (2005) ! O(n2;41 ) (moins bien mais il y a des liens interessants avec la theorie des groupes) ; 4. On peut demontrer que les problemes suivants sont de la m^eme complexite : { Inversion d'une matrice n n ; { Resolution d'un systeme d'equations lineaire avec n equations et n variables ; Ax = b ) x = A 1 b si A 1 9 { Calcul d'un determinant n n. 2.4 2.4.1 Autres types de récurrences Calcul d’une racine carrée 1 an 1 + n 1; a0 = 1 2 an 1 Recurrence non lineaire, d'ordre 1, utilisee pour calculer p , avec > 0 (Methode de Newton). Supposons que limn!1 an existe et est egal a L, avec L 6= 0. an = 23 CHAPITRE 2. RECURRENCES Alors : lim a = n!1 n | {z } =L 1 an 1 + lim n!1 2 an 1 {z } | 1 1 1 = 2 nlim !1{zan 1} + 2 limn!1 an | | {z =L =1=L 1} 1 1 L= L+ 2 2L 1 , 2 L = 12 L , L2 = p ,L= p , L = car a0 > 0 implique an > 08n 2 N Montrons limn!1 an = p , en posant bn = an p p , an = bn + On a p p 1 p bn + = bn 1 + + 8n 1 2 + b n 1 p 1 p , bn = 2 bn 1 + b + n 1! p 2 2 2 , bn = 21 bn 1b ( +p) + = 12 b bn+1p n 1 n 1 p Et b0 = a0 p = 1 p (probleme ? Non car b1 = 12 (1 1 ) 0). ) bn 0 toujours 8n 1 (et m^eme > 0 si 6= 1) 2 Remarque. 1 b2n 1p 1 b2n 1 1 bn 1 2 bn 1 + 2 bn 1 2 Donc bn converge vers 0 (exponentiellement). On sait deja que bn converge vers 0 )pan converge aussi et vers p . Des que bn 1 est petit, disons bn 1 , on a : 1 bn p b2n 1 2 A chaque iteration, le nombre de chires signicatifs double (environs). Exemple. = 2 p n an bn = an 2 1 1 1; 5 0; 0857 : : : < 10 2 1; 41666 : : : 0; 00245 : : : < 10 2 3 1; 41421568 : : : 0; 000002123 : : : < 10 4 4 1; 4142135623 : : : 2 10 12 < 10 8 5 1; 414213562373 : : : < 10 16 bn = 24 CHAPITRE 2. RECURRENCES 2.4.2 Fractions continuées an = Pour n 3 : 1 1 + an a0 = 1 = 1 1 1 =1 1+1 2 1 =2 a2 = 1 + 1 +1 1 3 1 3 a3 = = 1+ 1 1 5 1+ 1+1 a1 = Poser an = bnbn (8n 1). On obtient : 8n 1; a0 = 1 1 1 1 bn 1 = 8n 2 bn 1 + bbnn , bnb 1 = b bn+ 1b n n 1 n 2 , bn = bn 1 + bn 2 ( Fibonacci) 2 1 Conditions initiales : b a1 = 0 b1 = 12 ) b0 = 1; b1 = 2 Donc bn = Fn+2 8n. Utilite : approximer des nombres (ir)rationnels pour des rationnels simples (utilisant peu de bits). 31415 Exemple. 3; 1415 = 10000 En base 2 : on utilise blg 31415c + 1 + blg 10000c + 1 bits. Peut-on faire mieux ? (Plus precis avec moins de bits). 2.5 2.5.1 Plus d’applications Problème de la paire la plus proche On a n points dans le plan ( 1 point par droite horizontale/verticale). On voudrait trouver une paire de points separes par une distance minimale. Il existe un algorithme (trivial) en (n2). Idee : utiliser une approche diviser pour regner. Diviser le probleme en deux sous-problemes de taille n2 , recurser, et recombiner. Comment recombiner ? Soit d en distance minimum observee a gauche ou a droite. On veut voir s'il existe une paire fp; qg de points avec p a gauche, q a droite et d(p; q) < d. Observations : 1. On peut ignorer les points a distance > d de la verticale D qui separe les deux sous-problemes; 2. On a d(p; q) < d pour une paire fp; qg seulement si d(p; D) d et q se trouve dans un rectangle 2 d d. CHAPITRE 2. RECURRENCES 25 Combien de points q peut-on trouver dans un tel rectangle ? On dirait que le maximum est 6. Verions qu'il y en a 10. Demonstration. Autour de chaque point, on considere un disque ouvert de rayon d2 . Si deux de ces disques se rencontrent, alors les centres q et q0 se trouvent a distance < d2 + d2 = d ) les disques sont disjoints. Chacun de ces disques a au moins 41 de sa surface dans le rectangle. 2 1 ) k 4 d2 2d2 ou k := #points q dans le rectangle = 10; 18 : : : ) k 32 ) k b10; 18 : : :c = 10 Algorithme : { Precalcul : construire deux listes triees, contenant l'ensemble des points tries par abscisses %, et par ordonnees % ; (n lg n) { Partie recursive : 1. Diviser l'ensemble des points en deux parties, de taille n2 et n2 ; (n) 2. Determiner recursivement une paire la plus proche dans chacune des parties (gauche et droite), soit d la distance minimum observee; 2T n2 3. Pour tous les points p a gauche et a distance d de la droite verticale D separant la gauche et la droite ; inspecter tous les points q a droite, dans le rectangle deni par p ; retenir la distance minimum, et une paire a distance minimum (si distance < d) ; (n) 4. Retourner la distance minimum et une paire de points a distance minimum. (1) Donc au total : (recursif) n T (n) 2T 2 + (n) Ce qui donne T (n) = O(n lg n) A cela on rajoute (n lg n) pour le precalcul. Au total, le probleme peut ^etre resolu en O(n lg n). 2.5.2 Fermeture transitive Considerons un graphe dirige acyclique D = (V; A). On veut construire D^ = (V; A^) un graphe dirige (acyclique avec boucle sur chaque sommet). (u; v) 2 A^ , 9 chemin dirige de u a v dans D Considerons la matrice M d'adjacence de D : 0 0 1 1 0 01 B0 0 1 0 0 C C B C M =B B0 0 0 1 0 C C B @0 0 0 0 0 A 0 0 1 0 0 En general : ( (i; j ) est un arc M = (mij ) ou mij = 10 si sinon Calculer (M + I )2 ou I = matrice identite n n avec une nouvelle addition (c'est un ou ) : 26 CHAPITRE 2. RECURRENCES 0 1 0 0 1 1 1 1 + Exemple. 1 1 1 0 0 12 01 1 1 1 0 1 B0 1 1 0 0 C B0 1 1 1 0 C B C B C B C (M + I )2 = BB0 0 1 1 0CC = BBB0 0 1 1 0CCC @0 0 0 1 0 A @0 0 0 1 0 A 0 0 1 0 1 0 0 1 1 1 Le coecient en position (i; j ) = 1 , 9 chemin de longueur 2 de i a j dans D. Generalisons : (M + I )k est une matrice binaire (avec la denition de + choisie) dont le coecient en position (i; j ) est 1 si et seulement si 9 chemin (dirige) de i a j dans D, de longueur k. On veut donc calculer : (M + I )n 1 ou (M + I )k ou k n 1 On calcule (M + I )2, ((M + I )2)2, (((M + I )2)2)2, etc. jusqu'a ce que l'exposant n 1. ) on obtient un algorithme en O(n! lg n) ou ! est n'importe quel nombre 2 ]2; 3[ tel que 9 algorithme de multiplication de complexite O(n! ) pour des matrices n n. ^ s'appelle la fermeture transitive de D. Remarque. D 0 Chapitre 3 Fonctions génératrices \Une fonction generatrice est une corde a linge ou on peut prendre les termes d'une suite." 3.1 Nombres de Catalan n = 1 : x1 n = 2 : x1 x2 n = 3 : (x1 x2 )x3 x1 (x2 x3 ) n = 4 : x1 ((x2 x3 )x4 ) x1 (x2 (x3 x4 )) (x1x2)(x3x4) ((x1x2)x3)x4 (x1(x2x3))x4 1 1 2 5 Soit x1; x2; : : : ; xn matrices de tailles dierentes. Comment parentheser pour minimiser le nombre de multiplications de nombres (reels) ? Disons que l'on multiplie avec l'algorithme classique. Exemple. Pour n = 4. On a les matrices x1 une 5 2, x2 une 2 3, x3 une 3 7 et x4 une 7 2. z 2}| 2 { x1 ((x2 x3 ) x4 ) | {z } 27 {z 52 5}| 2 | z } { (|x1{zx2}) (|x3{zx4}) 53 donne 14 3 + 4 7 + 10 2 = 42 + 28 + 20 = 90 32 donne 15 2 + 6 7 + 10 3 = 30 + 42 + 30 = 102 toutes les possibilites, combien a-t-on de cas a considerer ? Relation de recurrence ? Exemple. Pour n = 5. Cas 1 : x1 (x2 x3 x4 x5 ) c1 c4 = 5 Cas 2 : (x1 x2 )(x3 x4 x5 ) c2 c3 = 2 Cas 3 : (x1 x2 x3 )(x4 x5 ) c3 c2 = 2 Cas 4 : (x1 x2 x3 x4 )x5 c4 c1 = 5 Si on essaie 27 28 ERATRICES CHAPITRE 3. FONCTIONS GEN On a donc un total de 5 + 2 + 2 + 5 = 14. En general : cn = c1 cn 1 + c2 cn 2 + : : : + cn 1 c1 8n 2; c1 = 1 Justication : le dernier produit eectue (cas ou il y a n facteurs) est constitue du produit des k premiers facteurs (deja multiplies entre eux) et des n k derniers facteurs (deja multiplies entre eux), ou k = 1; 2; : : : ; n 1. Resolution de la recurrence : l'idee est de construire la fonction generatrice f (x) := 1 X n=1 cn xn (ici c0 := 0, donc la somme commence a n = 1), sans s'occuper de la convergence (pour le moment). f (x) = c1 x + c2 x2 + c3 x3 + : : : = x + (c1c1)x2 +!(c1c2 + c2c1)!x3 + : : : + (c1cn 1 + : : : + cn 1c1)xn + : : : 1 X 1 X =x+ cn xn cn xn n=1 n=1 2 = x + [f (x)] ) [f (x)]2 [f (x)] + x = 0 p 1 4x 1 ) f (x) = 2 Quel signe prendre? p 1 1 4x f (0) = 0 ) f (x) = 2 1 1 (1 4x)1=2 f (x) = 2 2 Rappel. Serie du bin^ome de Newton. On a vu : 1 n! X n (1 + x) = xk k k=0 ni de termes). On peut denir, pour t 2 R : pour n 2 N (comporte un nombre t k Quand t > 0, on a : Remarque. ! := t(t 1) : : k: (!t 1 X k + 1) ! t k (1 + x) = x k=0 k Cela converge pour jxj 1. t ! 1 1=2 X ( 4x)k ) f (x) = 12 12 k k=0 ! 1 X 1=2 = 12 ( 1)k 22k xk k k=1 1 1 1=2! X ( 1)k 22k xk = 2 k k=1 | {z ck } ! car 1=02 := 1 par convention. 29 ERATRICES CHAPITRE 3. FONCTIONS GEN 1)n+1 12 (1=2)(1=2 1)(1=2 n!2) : : : (1=2 (n 1)) 2n2n Utilisons 2n = |2 2 {z: : : 2} pour tuer les n \1=2". cn = ( n fois = 1 = 3 z }| { z }| { = 2n+3= (2n 3) z }| { 1 1 (1 2) (1 4) : : : (1 2(n 1)) 2n cn = ( 1)n+1 2 n! = ( 1)(n+1)+(n 1) 12 1 1 3 5 n :!n: :! (2n 3) 2n n! = 12 (2nn!n!2)! 2n ! 1 2 n 2 =n n 1 ! 8n 1 ) cn = n1 2nn 12 Formule pour le neme nombre de Catalan. n 1 2 3 4 5 6 7 8 9 cn 1 1 2 5 14 42 132 429 1430 Fn 1 1 2 3 5 8 13 21 34 ::: ::: ::: On voit cn Fn. Tous les deux ont un comportement exponentiel, mais de base dierente (base p pour Catalan : 4, base pour Fibonacci : ' = 1+2 5 1:618). Pour n 2 : #(arbres binaires enracines a n feuilles) = cn C'est simple, il existe une bijection entre : (i) parenthesages complets d'un produit de n facteurs ; (ii) les arbres binaires enracines a n feuilles. Corollaire. #(arbres binaires enracines a n feuilles) = #(triangulations d'un (n + 1)-gone) ! = cn = n1 2nn 12 8n 2 3.2 Retour sur les nombres de Fibonacci Posons Fn = Fn 1 + Fn 2 f (x) := 8n 2; F0 = 0; F1 = 1 1 X n=0 F n xn 30 ERATRICES CHAPITRE 3. FONCTIONS GEN Alors f (x) = 0| +{z x} + 1 X conditions initiales n=2 =x+ =x+ 1 X n=2 1 X n=2 =x+x | F n xn (F n 1 + Fn 2 )xn 1 X F n 1 xn + 1 X n=2 Fn 1 n 2 F n 2 xn 1 X + x2 F n 2 xn 2 n=2 } | {z } x f (x) xn 1 {z xf (x) 2 ) f (x) = x + xf (x) + x2f (x) p p ou ' := 1+2 5 , ' := 1 2 5 . L'idee est d'utiliser ) f (x) = 1 1 X n=0 x x x2 Formule de Binet. 3.3 5 1 X n=0 p1 5 + 'x 1 'x 5 (x)n = 1 1x ) f (x) = p1 On retombe sur =1 p1 8 2 R: 'n x n p1 5 1 X n=0 'n xn 1 5 Fn = p ('n 'n ) Fonctions génératrices ordinaires I Définition (Fonction generatrice ordinaire). La fonction generatrice ordinaire (FGO) de la suite (an)n2N = (a0; a1; a2; : : :) est A(x) := On note 1 X n=0 an xn [xn]A(x) = an = coecient de xn dans A(x) La serie denissant une FGO { converge pour certains x 2 R ; { diverge pour d'autres x 2 R. Pour le moment, on ignore les questions de convergence. { Les manipulations eectuees sur les FGO sont bien denies si on les considere comme series formelles ; { Les series auxquelles on s'interesse ont typiquement de bonnes proprietes de convergence. . . au moins pour x 2 ] r; r[ 8r > 0 Remarque. 31 ERATRICES CHAPITRE 3. FONCTIONS GEN Exemple. La FGO de (1; 1; 1; 1; 1; : : :) est 1 X n=0 xn = La FGO de (1; ; 2 ; 3 ; : : : ; n ; : : :) est 1 1 1 x 1 x Théorème. Soit A(x) la FGO de (an )n2N et B (x) la FGO de (bn )n2N . (i) A(x) + B (x) est la FGO de (an + bn )n2N (ii) xA(x) est la FGO de (0; a0 ; a1 ; a2 ; : : : ; an 1 ; : : :) (iii) A0 (x) est la FGO de (a1 ; 2a2 ; 3a3 ; : : : ; (n + 1)an+1 ; : : :) (iv) A(x)B (x) est la FGO de (a0 ; a0 b1 + a1 b0 ; a0 b2 + a1 b1 + a2 b0 ; : : :) (v) A(xx) a est la FGO de (a1 ; a2 ; a3 ; : : : ; an+1 ; : : :) R (vi) 0x A(t)dt est la FGO de (0; a0 ; a2 ; a3 ; : : : ; ann ; : : :) (vii) (1 x)A(x) est la FGO de (a0 ; a1 a0 ; a2 a1 ; : : : ; an an 1 ; : : :) P (viii) A1 (xx) est la FGO de (a0 ; a0 + a1 ; a0 + a1 + a2 ; : : : ; nk=0 ak ; : : :) 0 1 2 1 Demonstration. (i) Ok. (ii) xA(x) = x P1n=0 anxn = P1n=0 anxn+1 = 0 + P1n=1 an 1xn (iii) A0(x) = (P1n=0 anxn)0 = P1n=1 annxn 1 = P1n=0(n + 1)an+1xn (iv) A(x)B (x) = (a0 + a1 x + a2 x2 + : : :)(b0 + b1 x + b2 x2 = : : :) = a0b0 + (a0b1 + a!1b0)x + (a0b2 + a1b1 + a2b0)x2 + : : : n 1 X X ak bn k xn = n=0 k=0 (v) Ok. (vi) Ok. (vii) Par (iv) : (1 x)A(x) = A(x)B (x) B (x) = FGO de (1; 1; 0; 0; : : :) = FGO de (a0; |a0( 1){z+ a1(1)}; : : : ; a0bn + a1bn 1 + : : : + a| n 1b1{z+ anb0}; : : :) an an a a 1 0 1 (viii) Par (iv), de maniere similaire : 1 A(x) = A(x)B (x) B (x) = FGO de (1; 1; 1; 1; : : :) 1 x n X = FGO de (a0; a0 + a1; a0 + a1 + a2; : : : ; ak ; : : :) k=0 Exemple. 32 ERATRICES CHAPITRE 3. FONCTIONS GEN I. FGO de (0; 1; 2; 3; : : : ; n; : : :) ? 1 1 x ) 1 1 (viii) 1 x 1 x = FGO de (1; 1; 1; 1; : : :) = FGO de (1; 1 + 1; 1 + 1 + 1; : : :) = FGO de (1; 2; 3; : : : ; n + 1; : : :) = FGO de (0; 1; 2; 3; : : : ; n; : : :) ) (1 x x)2 (ii) n k n2N Generalisons, la FGO de pour k 2 N xe est egal a (1 En eet, vrai pour k = 0. Si (1 xxk)k est la FGO de xk x)k+1 n k n2N , +1 xk 1 x (1 x)k+1 x est la FGO de ! ! ! ! ! ! ! 0; k0 ; k0 + 1;; k k0 + k1 + k2 ; : : : ! ! ! ! ! ! 0 1 2 3 n = k + 1 ; k + 1 ; k + 1 ; k + 1 ;:::; k + 1 ;::: !! n = k+1 n2N II. III. FGO de 1 1 1 1 FGO de 0; 1; ; ; ; : : : ; ; : : : 2 3 4 n Z x 1 dt = ln(1 t) x = (vi) 0 1 t 0 x 1 1 = ln 1 t = ln 1 x 0 0 0; 1; 1 + 21 ; 1 + 12 + 13 ; : : : ; 1 + 12 + : : : + n1 ; : : : est 1 ln 1 1 x 1 x (Nombre harmonique). Pour n 2 N, Hn := 1+ 12 +: : :+ n1 est le neme nombre harmonique. Remarque. Pour tout choix de noyau N (x; n), on peut d enir une serie generatrice Définition 1 X n=0 an N (x; n) Si on prend N (x; n) = xn on obtient les FGO et si on prend N (x; n) = xnn! on obtient les FGE (Fonctions Generatrices Exponentielles). 33 ERATRICES CHAPITRE 3. FONCTIONS GEN 3.4 Fonctions génératrices ordinaires II (récurrences linéaires) On a vu l'exemple de Fibonacci f (x) = 1 Un autre exemple facile : Exemple. an = 2an 1 + 1 Posons A( x ) = 0 + 2 . 8n 1; a0 = 0 A(x) := Alors x x x 1 X n=0 an xn 1 X (2an 1 + 1)xn n=1 = 0 + 2xA(x) + 1 1 x 1 | {z } x 1 ) A(x) = (1 x)(1 2x) x Donc A( x ) = pour certaines constantes c0 ; c1 . c0 c1 + 1 2x 1 x [|xn]{zA(x}) = c02n + c1 an x 8n 0 Remarque. Ceci se g eneralise aux recurrences lineaires a coecients constants. Methode de resolution : (i) Determiner la FGO A(x) = QP ((xx)) ou P et Q sont des polyn^omes, et deg P < deg Q ; (ii) Decomposer QP ((xx)) en fractions simples ; (iii) Extraire les coecients en utilisant la decomposition. 3.5 3.5.1 Fonctions génératrices ordinaires III (applications) Quicksort (Hoare, 1962). def partition (a , l , r , i ) : v := a [ i ] swap a [ i ] and a [ r ] s := l for k from l to r 1: i f a [ k ] <= v : swap a [ k ] and a [ s ] s := s + 1 swap a [ s ] and a [ r ] return s def quicksort (a , l , r ) : if r > l : 34 ERATRICES CHAPITRE 3. FONCTIONS GEN s e l e c t a pivot index ni := partition (a , l , r , i ) quicksort (a , l , ni 1) quicksort (a , ni + 1 , r ) Hypotheses : 1. Le vecteur a trier est une permutation des nombres de 1 a N ; 2. Le vecteur a trier est choisi uniformement aleatoirement parmi les N ! permutations de 1; : : : ; N . Xn := #comparaisons entre elements de a[: : :] eectuees par quicksort sur un vecteur de taille N . E [Xn ] =? Decomposons : XN = YN + ZN avec YN le #comparaisons pendant le partitionnement et ZN le #comparaisons apres le partitionnement (partie recursive). Notons YN N 1 Alors E [XN ] = E [YN ] + E [ZN ] NX1 = (N 1) + P [rang du pivot est i] E [ZN =rang du pivot est i] = (N 1) + i=0 NX1 i=0 1 (E [Xi] + E [XN i 1]) N | {z } | {z } ci Posons CN On trouve CN CN i 1 = E [XN ] NX1 = (N 1) + N2 ci 8N 1; c0 = 0 i=0 Soit C (x) := P1N =0 cN xN = FGO de (c0; c1; c2; : : :) = (0; c1; c2; : : :). 8N 1 : NCN ) 1 X N =1 = N (N 1) + 2 NCN xN = 1 X N =1 NX1 i=0 N (N ci 1) + 2 xN NX1 ! ci xN N =1 i=0 1 X Notons : N 0 1. P1N =1 NC N x = FGO de (0; c1 ; 2c2 ; 3c3 ; : : :) = xC (x) 2. P1N =1 PNi=01 ci xN = FGO de (0; c0; c0 + c1; : : :) = 1 x x C (x) 3. 2 P1N =1 N (N2 1) xN = 2FGO de (0; 0; 1; 3; 6; : : : ; N2 ; : : :) = 2 (1 x x) 2 3 35 ERATRICES CHAPITRE 3. FONCTIONS GEN x x2 + 2 3 (1 x) 1 x C (x) 2 C (x) = 2 x , C 0 (x) x6=0 1 x (1 x)3 , (1 x)2C 0(x) 2(1 x)C (x) = 2 1 x x h i0 , (1 x)2C (x) = 2 1 x x Z 2 , (1 x) C (x) = 2 1 x x dx , (1 x)2C (x) = 2ln 1 1 x 2x + CST xC 0 (x) = 2 C (x) = (1 2 x)2 avec CST = 0 car C (0) = 0 ln 1 1 x (1 2xx)2 Théorème. Le nombre moyen de comparaisons (entre elements) eectuees par quicksort sur une permutation aleatoire de taille N est : [xN ]C (x) = CN = 2(N + 1)(HN +1 1) 2N 2N ln N Demonstration. 1 ln 1 est la FGO de (H0; H1; H2; : : : ; HN ; : : :) 1 x 1 x 1 1 ou HN = 1 + 2 + 3 + : : : + N1 et H0 = 0. ) 1 1 x2 ln 1 1 x est la FGO de (H0; H0 + H1; : : : ; H0 + H1 + : : : + HN ; : : :) or N X k=0 1 + 21 + : : : + 1 + 21 + 13 + : : : + N1 k=1 = 1 + 12 + 31 + : : : + N1 + 1 + 12 + 31 + : : : + N1 + 1 + 12 + 13 + : : : + N1 + ... ... 1 + 12 + 31 + : : : + N1 N = (N + 1)HN N = (N + 1)(HN +1 1) Hk = N X (1 Remarque. On peut determiner 1 Hk = 1 + x)2 est la FGO de (0; 1; 2; 3; : : : ; N; : : :) E [XN ] 2N ln N V ar[XN ] N 2 2 7 23 ! [Knuth] 36 ERATRICES CHAPITRE 3. FONCTIONS GEN avec l'inegalite de Chebyshev : P [jXN On voit 3.5.2 E [XN ]j a] V ar(XN ) a2 V ar(XN ) 7 23 K2 E [XN ]j K N ] K 2N 2 P [jXN 2 Rendre la monnaie De combien de manieres peut-on rendre n eurocents de monnaie, avec des pieces de 1, 2, 5 et 10 eurocents ? Soit 1 X A(x) := an xn la FGO de la suite recherchee n=0 Alors 0 A( x ) = @ 1 X n =0 10 xn 1 A@ 1 Exemple. Coecients de x3 ? 1 X n =0 10 x2n 2 A@ 2 1 X n =0 10 x5n 5 A@ 5 1 X n =0 1 x10n 10 A 10 1 + |{z} 1 =2 |{z} x 111 3 A( x ) = xx 11 2 1 1 1 1 1 x 1 x2 1 x5 1 x10 Coecients ? 1 + x + x2 + : : : + x9 1 + x2 + : : : + x8 1 + x5 1 1 x10 1 x10 1 x10 1 x10 2 3 4 5 6 7 8 9 10 11 = 1 + x + 2x + 2x + 3x + 4x (1+ 5xx10+)46x + 7x + 8x + 7x + 8x + 7x12 + 8x13 + 7x14 + 6x15 + 5x16 + 4x17 + 3x18 + 2x19 + 2x20 + x21 + x22 (1 x10)4 Observons : ! 1 n+3 n [x ] (1 x)4 = 3 On sait que (1 x x) est la FGO de n3 n2N A( x ) = 3 4 [x10n] 1 n+3 ! (1 x10)4 = 3 ( n +3 si 10 j n 1 n 3 ) [x ] (1 x10)4 = 0 si 10 - n 10 Par exemple, pour on trouve n0 (mod 10) 10 20 [xn]A(x) = [xn] 1 +(17x x+10)24x ! ! n +3 n +2 = 10 3 + 7 10 3 [n 10] + 2 ! 10 + 1 [n 20] 3 n 37 ERATRICES CHAPITRE 3. FONCTIONS GEN ou ( na [n a] = 10 sisinon (notation d'Iverson). On trouve des formules similaires quand n = 1; 2; 3; : : : ; 9 (mod 10). Exemple. 3.6 ! ! 4 + 7 3 + 0 = 4 + 7 = 11 n = 10 ! a10 = 3 3 Fonctions génératrices exponentielles (Fonction generatrice exponentielle). La fonction generatrice exponentielle (FGE) de la Définition suite an n2N ( ) est A(x) := On ecrit : 1 X n=0 an xn n! n![xn ]A(x) = an Par calcul direct P xn x (i) FGE de (1; 1; 1; : : :) = n0 n2N est 1 n=0 n! = e P n xn P1 xk P1 xn n! xn (ii) FGE de nk n2N est 1 n=k k n! = n=k k!(n k)! n! = k! n=0 n! P 1 xn (iii) FGE de (1; 1; 2; 6; 24; : : : ; n!; : : :) = (n!)n2N est 1 n=0 n! n! = 1 x Exemple. = xkk! ex Utilite : 1. Comptage de structures etiquetees; 2. Methode symbolique; 3. Meilleures proprietes de convergence. Théorème. Si A(x) est la FGE de (an )n2N et B (x) est la FGE de (bn )n2N : R (i) 0x A(t)dt est la FGE de (0; a0 ; a1 ; a2 ; : : : ; an 1 ; : : :) (ii) A0 (x) est la FGE de (a1 ; a2 ; a3 ; a4 ; : : : ; an+1 ; : : :) (iii) xA(x) est la FGE de (0; a0 ; 2a1 ; 3a2 ; : : : ; nan 1 ; : : :) (iv) A(x) x A(0) est la FGE de (a1 ; a2 ; a3 ; : : : ; ann+1 ; : : :) (v) A(x) + B (x) est la FGE de (a0 + b0 ; a1 + b1 ; : : : ; an + bn ; : : :) (vi) A0 (x) A(x) est la FGE de (a1 a0 ; a2 a1 ; : : : ; an+1 an ; : : :) P (vii) A(x)B (x) est la FGE de (a0 b0 ; a0 b1 + a1 b0 ; a0 b2 + 2a1 b1 + a2 b0 ; : : : ; nk=0 P (viii) ex A(x) est la FGE de (a0 ; a0 + a1 ; a0 + 2a1 + a2 ; : : : ; nk=0 nk ak ; : : :) 2 3.7 3 +1 La méthode symbolique I (objets non étiquetés) Rappel. L'equation fonctionnelle, la FGO des nombres de Catalan : f (x) = x + [f (x)]2 na b k k n k; : : : ) 38 ERATRICES CHAPITRE 3. FONCTIONS GEN Formons la serie symbolique S (x) S (x) = 1X X i=1 (arbres binaires dierents de i feuilles) xi Denissons le produit A1 A2 des arbres A1; A2 par A1 A2 = (arbre avec ls gauche A1 et ls droit A2 ) Alors S (x) = (racine) x + [S (x)]2 A classe (ou ensemble) d'objets non etiquetes. { Chaque objet a 2 A a une taille jaj (depend du contexte) ; { an := #objets de taille Pn 1dans A ; P { FGO de A est A(x) := n=0 anxn = a2A xjaj. Théorème. Si A; B sont deux classes (d'objets non etiquetes), A(x) est la FGO de A et B (x) est la FGO de B { A(x) + B (x) est la FGO de A + B, la reunion disjointe de A et B ; { A(x)B (x) est la FGO de A B, le produit cartesien de A et B : ses objets sont de la forme (a; b) avec a 2 A, b 2 B, dont la taille est jaj + jbj ; 1 2 3 { 1| {zA(x)} est la FGO des suites d'objets de A : fg + A + A + A + : : : =1+A(x)+A (x)+::: 2 3.8 La méthode symbolique II (objets étiquetés) Idees : 1. Les objets sont constitues d'atomes, numerotes de 1 a n (pour un objet de taille n) ; 2. On utilise les FGEs. Exemple. 1. Permutations P = f; 1; 12; 21; 123; 132; 213; 312; 321; : : :g FGE de P est xjpj p2P jpj! X = 1 X xn n=0 n! n! =11x 2. Cycles : (123) = (231) = (312) C = f(1); (12); (123); (321); : : :g Remarque. Il y a nn! = (n 1)! cycles de taille n 1 (et 0 cycles de taille 0). 1 X 1 n X (n 1)! xn! = n1 xn = ln 1 1 x n=1 n=1 Pour deux classes A; B d'objets etiquetes on denit : A + B la somme disjointe de A et B, comme precedemment. Mais A B n'a plus vraiment de sens car si a 2 A, b 2 B alors (a; b) aura des atomes repetes (ce qu'on ne veut pas). Exemple. A = B = C = classe des cycles etiquetes pour a = (1), b = (1; 2), on a ab = (1)(1; 2) On va plut^ot denir un ensemble d'objets obtenus a partir de a et b : (1)(2; 3); (2)(1; 3); (3)(1; 2). ) FGE de C = 39 ERATRICES CHAPITRE 3. FONCTIONS GEN En generalisant ceci, on denit A B comme la classe des objets etiquetes obtenus en combinant toutes les paires d'objets a; b avec a 2 A et b 2 B, en reetiquetant de toutes les manieres possibles (compatibles avec a et b). Remarque. Il y a nk = nn k mani eres de faire ca pour un objet a de taille k et un objet b de taille n k. A; B classes d'objets etiquetes Si A(x) est la FGE de A et B (x) est la FGE de B, alors { A(x) + B (x) est la FGE de A + B ; { A(x)B (x) est la FGE de A B ; { 1 A1 (x) est la FGE des suites d'objets de A (ordre important) ; { eA(x) est la FGE des ensembles d'objets de A. Théorème. Exemple. 1. C = classe des cycles (etiquetes) 1 1 x 1 = FGE de (n!)n2N x = 1 x C (x) = FGE de C = ln eC (x) = eln 1 1 la FGE des ensembles de cycles etiquetes. ffg; f(1)g; f(1); (2)g; f(1; 2)g; f(1); (2); (3)g; f(1); (2; 3)g; : : :g Il y a n! ensembles de cycles sur f1; 2; : : : ; ng. Toute permutation de f1; 2; : : : ; ng peut s'ecrire de maniere unique comme un ensemble de cycles : ! 1 2 3 4 = f(1; 4; 3); (2)g 4 2 1 3 2. Nombres de Stirling de la 1ere espece " # n k FGE : := #permutations de [n] ayant exactement k cycles. 1 C (x) C (x) : : : C (x) = 1 ln 1 k {z } k! | k! 1 x k fois Ces nombres forment un triangle : 1 0 1 0 1 1 0 2 3 1 0 6 11 6 1 0 24 50 35 10 1 3. Nombres de Stirling de la 2eme espece ( ) n := #partitions de [n] en k sous-ensembles (non vides). k { x est la FGE de la classe f1g (un objet de taille 1) ; 40 ERATRICES CHAPITRE 3. FONCTIONS GEN ex est la FGE de la classe ffg; f1g; f1; 2g; f1; 2; 3g; : : :g ; ex 1 est la FGE de la classe ff1g; f1; 2g; f1; 2; 3g; : : :g ; 1 x 1)k est la FGE de la classe fff1g; f2gg; ff1g; f2; 3gg; ff2g; f1; 3gg; ff3g; f1; 2gg; : : :g k ! (e (pour k = 2). On obtient un triangle : { { { 1 0 1 0 1 1 0 1 3 1 0 1 7 6 1 0 1 15 25 10 1 3.9 Nombres de Bernouilli Motivation : calculer la somme St (n) = 0t + 1t + 2t + : : : + (n Exemple. 1)t = nX1 k=0 kt 8t 2 N Pour t = 0; S0 (n) = 00 + 10 + 20 + : : : + (n t = 1; S1 (n) = 01 + 11 + 21 + : : : + (n etc. 1)0 = n 1)1 = n(n2 1) Fixons n 2 N et ecrivons la FGE de (S0(n); S1(n); : : : ; St(n); : : :) 1 X t=0 = = 1 X St (n) nX1 xt t! kt ! t=0 k=0 nX1 X 1 k t xt k=0 t=0 nX1 ex k xt t! t! = ( ) k=0 = (ex)0 + (ex)1 + : : : + (ex)n x n nx = (eex) 1 1 = eex 11 nx = e x 1 ex x 1 enx x 1=1 n3 x3 2 + 6 + ::: ! n2 n3 x2 = n + 2 x + 3 2 + ::: x nx + n2 x2 1 = FGE de ! n2 n3 nt+1 ;::: n; ; ; : : : ; 2 3 t+1 ! 41 ERATRICES CHAPITRE 3. FONCTIONS GEN Posons Bt := t![xt] exx 1 le teme nombre de Bernouilli, c'est-a-dire ex x 1 est la FGE de (B0; B1; B2; : : : ; Bt; : : :) nx ) e x 1 ex x 1 est la FGE de B0 n; B0 n3 n2 n2 2 + B1n; B0 3 + 2B1 2 t X ! t X ! t+1 k + B2n; : : : ; kt Bk t n+ 1 k ; : : : k=0 ! t nt+1 k ) St(n) = Bk t+1 k k=0 k t t+1 k X = t +1 1 kt!!((tt +k1))! Bk t n+ 1 k k=0 1 Xt t + 1 St (n) = t + 1 k=0 k ! Bk nt+1 Comment calculer les Bk ? x2 k 1 X 3 t x x x x + B3 + : : : = Bt = x = x 2 6 e 1 x + 2 + x6 + : : : t=0! t! ! x2 x3 x2 x3 x4 , x = B0 + B1x + B2 2 + B3 6 + : : : x + 2 + 6 + 24 + : : : B0 + B1 x + B2 2 Ceci donne { coecient de x0 : 0 = 0 { coecient de x1 : 1 = B0 { coecient de x2 : 0 = B2 + B1 , B1 = 21 { coecient de x3 : 0 = B6 + B2 + B2 , B2 = B1 { coecient de x4 : 0 = B24 + B6 + B4 + B6 , B3 = Remarque. Bk = 0 pour k impair, k 3. 0 0 1 2 0 1 2 3 = 12 31 = 16 3 1+1 1 =0 4 2 4 B 0 (B0; B1; B2; B3; : : :) = (1; 12 ; 16 ; 0; ; 0; ; 0; : : :) 3 42 ERATRICES CHAPITRE 3. FONCTIONS GEN Ceci donne 0 1 B B 0+1 1 B S0 (n) = 0 + 1 B@ 0 | 0 B B 2 1 S1 (n) = B 2 B@ 0 {z =1 ! ! B0 n2 + | {z } 0 =1 B 1 BB 3 S2 (n) = B 3 B@ 0 ! B0 n3 + | {z } 0 =1 B B 4 1 S3 (n) = B 4 B@ 0 ! B0 n4 + | {z } =1 Toujours C 0+1 0 C C=n n B 0 C |{z} A =1 } 1 2 1 ! C C B1 nC C A | {z } = 12 (n2 n) = = 1 3 1 ! B1 n2 + | {z } = 4 1 3 2 ! B1 n3 + | {z } = 2 n(n 2 1 C C B2 nC C C | {z } A 3 2 ! = 4 2 = 13 4 1 ! n3 3 n2 + 1 n 2 2 1 2 1 ! B2 n2 + | {z } =1 = 14 n2(n2 2n + 1) = 41 n2(n 1)2 = n(n C C B3 nC C A | {z } 2 =0 1) 2 nt+1 + ::: t + 1 ordre|{z} inferieur t +1 ) St(n) tn+ 1 St (n) = 1) = 14 (n4 2n3 + n2) Chapitre 4 Comportements asymptotiques 4.1 Nombres harmoniques H0 = 0 Hn = 1 + 1 + 1 + ::: + 1 2 3 n 8n 1 apparaissent a plein d'endroits. Buts : montrer (i) Hn ln(n), c'est-a-dire que l'erreur relative quand on remplace Hn par ln(n) n!1 ! 0. (ii) limn!1 Hn ln(n) = , c'est-a-dire que l'erreur absolue quand on remplace Hn par ln(n) n!! +1 0; 577215 (appelee constante d'Euler ). P 1 Remarque. H1 = 1 a-dire limn!1 Hn = 1 i=0 i = 1, c'est- 5 2,5 0 2,5 5 Nous pouvons distinguer 3 aires dierentes : 1. L'aire des rectangles sous la courbe : 21 + 13 + : : : + n1 = Hn 1 ; 2. L'aire sous la courbe : R1n 1t dt = ln(n) ; 3. L'aire des rectangles au-dessus de la courbe : 1 + 21 + : : : + n 1 1 = Hn 1. 43 44 CHAPITRE 4. COMPORTEMENTS ASYMPTOTIQUES Donc Hn 1 < ln(n) < Hn 1 ) Hn 1 < ln(n) < Hn n) Hn ) HnH 1 < ln( < H Hn n n | {z } |{z} !1 !1 n!1 n!1 ln(n) ) nlim !1 Hn = 1 De plus : ln(n) < Hn < ln(n) + 1. La serie harmonique diverge logarithmiquement. Pour avoir Hn 10 : Corollaire. Exemple. ln(n) < 10 < ln(n) + 1 Prendre e9 < n < e10 , c'est-a-dire 8104 < n < 22026. Posons an := Hn ln(n) [erreur absolue] On a ) an > 0 8n car Hn > ln(n) !1 an existe, 0: an strictement decroissante ) nlim an & car an+1 an = Hn+1 ln(n + 1) Hn + ln(n) = n +1 1 ln( n + 1) ln(n) | {z } = On voit an+1 an < 0 ) a1 > a2 > a3 > : : : ) an & Posons := nlim !1 (Hn | On peut calculer : Remarque. ln(n))} {z an = 0; 5772156649 : : : On peut montrer qu'en fait 1 + 1 1 2n 12n2 120n4 En particulier : Hn = ln(n) + + ( n1 ). Hn = ln(n) + + 4.2 R n+1 1 t dt n Factorielles de Moivre n! C pn ne n pour une constante C . Stirling a obtenu ( 1730) : p C = 2 n avec 0 < n < 1 252n6 45 CHAPITRE 4. COMPORTEMENTS ASYMPTOTIQUES 4.2.1 Formule de Wallis 2 2 4 4 : : : (2n) (2n) = lim n !1 13 3 5 5 : : : (2n 1) (2n 1)(2n + 1) 2 Demonstration. Im = m = 0; 1 : I0 = I1 = m2: Im = Z 2 0 f 0 (x) = (m g (x) = Z Z 2 0 Z 2 0 2 0 sinm xdx 8m 2 N 0 x dx = sin | {z } 2 =1 sin1 xdx = cos x = 1 2 0 m 1 x sin1 x dx sin | {z } | {z } =f (x) =g0 (x) m 2x 1) sin cos x cos x m 1 ) Im = sin x ( cos x) 2 Z 2 0 0 (m 1) sinm = (m 1) 0 sinm 2 xdx (m 1) , Im = (m 1)Im 2 (m 1)Im , mIm = (m 1)Im 2 , Im = m 1 I m 2 m Z 2 0 sinm xdx 2 2 n 1 2 n 3 : : : 5 3 1 I0 2n 2n 6 4 2 |{z} = 2 n 2 n 2 : : : 4 2 I1 I2n+1 = 2n + 1 2n 1 5 3 |{z} =1 I2n = 2 Pour x 2 0; 2 : 0 sin x 1 ) sin2n 1 x sin2n x sin2n+1 x ) I2n 1 I2n I2n+1 ) II2n 1 I I2n II2n+1 2n+1 Poser m = 2n + 1. Im 2 Im 2n+1 1) |cos{z2 x} dx =(1 sin x) 2 Z Donc 2 x( 2n+1 =1 | {z } = mm 1 = 2n2+n 1 I2n ) nlim !1 I2n+1 = 1 46 CHAPITRE 4. COMPORTEMENTS ASYMPTOTIQUES C'est-a-dire (2n + 1)(2n 1) (2n 1) : : : 5 5 3 31 = 1 lim n!1 (2n) (2n) : : : 4 4 2 2 2 (2n) (2n) : : : 4 4 2 2 ) nlim !1 (2n + 1) (2n 1) (2n 1) : : : 5 5 3 3 1 = 2 (2n)4 : : : 44 24 = lim 2 n!1 (2n + 1) (2n)2 (2n 1)2 : : : 52 42 32 22 z n facteurs pairs }| { 1 [2 4 6 : : : (2n)]4 = nlim !1 2n + 1 [(2n)!]2 24n (n!)4 = nlim !1 2n + 1 [(2n)!]2 2 24n 1 ) 1 = nlim !1 2n + 1 (2n)! 2 | {z } =a(n) n!n! | {z } =b(n) ) a(n) b(n) C'est-a-dire On trouve 2n 2 2 24n 2 24n 24n 2n + 1 2n n n ! ! 2n p22n n n qui donne une approximation pour des coecients binomiaux au centre du triangle de Pascal. Remarque. 1 5 F n p 'n Wallis donne ! 1 2n 4n Cn+1 = pn n+1 n On voit que Cn Fn 3 2 pour n grand Comment obtenir la constante C de Stirling ? Par Wallis : ! 2n p22n Par de Moivre : n n p 2n 2n p C 2n e 1 2n = (2n)! pn2 22n 2n n 2 n n!n! C C n e p 1 p1 p Donc on doit avoir 2 C = car C = 2. ! 47 CHAPITRE 4. COMPORTEMENTS ASYMPTOTIQUES 4.2.2 Formule de Stirling (et de de Moivre) p n n n! 2n e Théorème. n n n 2n e e n! = C'est-a-dire Remarque. p ou 1 < n < 1 12n + 1 12n p n n n n n n < n! < 2n e e e e p L'erreur relative commise en remplacant n! par 2n ne n vaut p 2n 1 12 ! p2n n! n 1 +1 12 n n e 1 12n (n!1 ! 0) Exemple. n 1 2 5 100 4.3 Approximation de Stirling Erreur absolue Erreur relative 0; 922 : : : 0; 08 8% 1; 919 : : : 0; 08 4% 118; 019 : : : 2 1; 6% 9; 324 10157 1; 7 10155 0; 08% Formule d’Euler-Maclaurin On a vu : 1. t+1 0t + 1t + 2t + : : : + (n 1)t = tn+ 1 + ::: |{z} nombres de Bernouilli t t+1 X = t +1 1 k k=0 2. Pour approximer ! Bk nt+1 k 1 + 1 + ::: + 1 2 3 n Z n 1 dt = ln(n) Hn = 1 + on utilise 1 t X ak<b f (k ) = Z b a m X Bk k 1 b f (x)dx + f (x) + |{z} Rm a k=1 k! reste ou Rm = ( 1) m+1 Z b a Bm (fxg) m f (x)dx m! a; b 2 Z, a b. m 2 Z, m 1. f fonction telle que f 0 ; f 00 ; f 000 ; : : : ; f m existent et sont continues sur [a; b]. Bm (x) est le meme polyn^ome de Bernouilli. m X ! m Bm (x) = Bk x m k ou les Bk sont les nombres de Bernouilli k k=0 fxg := x bxc est la partie fractionnaire de x. 48 CHAPITRE 4. COMPORTEMENTS ASYMPTOTIQUES 4.3.1 Utilité t 1. Generaliser 0t + 1t + 2t + : : : + (n 1)t = nt+1 + ::: 1 2. Pour f (k) = k et a = 1, b = n 1 1 1 Hn = ln n + + 2n 12n2 + 120n4 + erreur 3. Pour f (k) = ln k et a = 1, b = n X ln(n 1)! = ln k = n ln n + : : : +1 1k<n on trouve (en particulier) la formule de Stirling. \Preuve heuristique" : Calcul dierentiel innitesimal Calcul di erentiel discret R P Operateurs et D et Df (x) = f 0 (x) f (x) = f (x + 1) f (x) On a Z X Par Taylor : D=D = )D 1= X f (x + ) = f (x) + Prenons = 1 Z ) 1= f 0 (x) 1! + X f 00 (x) 2 + ::: 2! f (x) = f (x + 1) f (x) 0 00 000 = f 1!(x) + f 2!(x) + f 3!(x) + : : : D2 D Vu que = eD Z D3 ! = 1! + 2! + 3! + : : : f (x) = eD 1 f (x) 1 (egalite entre operations) ) P = 1 = eD1 1 . X = D1 eDD 1 = D1 B0 + B1!1 D + B2!2 D2 + : : : =1 B0 z}|{ On trouve nalement = D + B1!1 + B2!2 D + : : : Z = + B1!1 + B2!2 D + : : : X Z = + 1 X Bk k 1 D k=1 k! 49 CHAPITRE 4. COMPORTEMENTS ASYMPTOTIQUES et 1 X Bk k 1 b f (k) = f (x)dx + f (x) a a k=1 k! ak<b b Z b 1 B X X k k 1 f (x) + |{z} Rm ) f (k) = f (x)dx + a a ak<b k=1 k! Z X b reste 4.3.2 Application : approximation de ln(n!) f (x) = ln x, a = 1, b = n. m = 2p (pas trop grand). Alors : Pour k 2 : Z f (x)dx = f k 1 (x) 1 = k! ( k! ln((n 1)!) = = X 1k<n Z | n 1 que ln(x)dx = x ln x x + CST 1)k 2(k 2)! xk1 1 = ( 1)k 2 k (k 1 1)xk 1 ln(k) ln xdx + {z = x ln x x Rappel. Z } n B1 |{z} = 1 n m X 1 k=2 ln x + 1 Bk ( 1) k(k 1)xk k 2 n 1 1 + Rm 2 1 B0 = 1, B1 = 12 , B2 = 16 , B3 = 0, B4 = 301 (nombres de Bernouilli). On peut verier en utilisant { Bk = 0 pour k impair, k 3 ; { Un truc pour evaluer Rm. ln((n 1)!) = n ln n n p B2l B2p+2 ln n + + X + 'p;n 2 l 1 2 (2p + 2)(2p + 1)n2p+1 l=1 2l(2l 1)n ou 0 < 'p;n < 1 et est la constante de Stirling (on sait que e = p2 par Wallis). p X ln n B2p+2 2l + 'p;n ) ln(n!) = n ln n n + 2 + + 2l(2l B1) 2 l 1 n (2p + 2)(2p + 1)n2p+1 l=1 Pour p = 2 (m = 4), on trouve : ln(n!) = n ln n n + ln2n + + 16 2(2 11)n2 1 301 4(4 11)n4 1 + reste | {z } O n ln n 1 1 1 ) ln(n!) = n ln n n + 2 + + 12n 360n3 + O n5 1 5 Remarque. moment. Ce n'est pas interessant de prendre m grand car B2p+2 va augmenter au bout d'un 50 CHAPITRE 4. COMPORTEMENTS ASYMPTOTIQUES 4.4 Méthodes analytiques On peut tirer des informations sur une suite en ayant sa FG, en utilisant l'analyse (reelle ou complexe). Un exemple : nombres de Bell ordonnes bn : = #partitions ordonnees d'un ensemble de n elements (en classes non vides) = #preordres totaux sur [n] Exemple. b1 = 1 b2 = 3 b3 = 13 (f 1g ) (f1; 2g); (f1g; f2g); (f2g; f1g) (f1; 2; 3g); (f1g; f2; 3g); : : : ; (f2; 3g; f1g); (f1g; f2g; f3g); : : : ; (f3g; f2g; f1g) Probleme : pas de formule exacte. La FGE de bn est B (x) = 1 E1 (x) ou E (x) est la FGE de la classe des E des ensembles non vides, c'est-a-dire E = ff1g; f1; 2g; f1; 2; 3g; : : :g Donc 1 X xn E (x) = 1 = ex 1 n! n=1 et 1 1 = B (x) = 1 E (x) 1 (ex 1) ) B (x) = 2 1 ex 1 1 + E| {z(x}) + |E 2{z(x}) + |E 3{z(x}) + : : : |{z} 1 E (x) = ensemble E 2 (x) est la FGE de E E . vide partition partition partition en 1 classe en 2 classes en 3 classes On va considerer la fonction complexe B (z ) = 2 1 ez Proprietes de cette fonction? 1. Holomorphe sur Cnfz 2 C j ez = 2g = Cnfz 2 C j z = ln2 + 2k ig ou k 2 Z ; 2. Singularite la plus proche de 0 est ln2. Serie de Laurent pour B (z) autour de z0 = ln2. B (z ) = Montrons : + 1 X n= 1 an (z ln 2)n 1 a 1= 2 a 2 = a 3 = ::: = 0 Posons w = z ln 2 an = 1 Z 2i C (ln 2;) B (z)(z ln 2) an = 1 Z B (w + ln 2)w 2i C (0;) n 1 n 1 dz dw 51 CHAPITRE 4. COMPORTEMENTS ASYMPTOTIQUES Or 1 = 2 2 2 ew 1 = 2 2 1 + w + w2! + w3! + : : : 1 = w 2w 1 + 2! + w3! + : : : = 12 w f1(w) ou f (w) est holomorphe sur C 1 B (w + ln 2) = ew+ln 2 3 2 2 Z 1 ) an = 2i C (0;) 1 1 w 2 {zf (w)} | n 2 dw fonction holomorphe en 0, et qui vaut quand w = 0 coecient de wn+1 dans la serie de Laurent de 21 f (1w) autour de 0. 1 2 Si | n {z2 0}, on a : an = 0. n 2 Si | n {z2 = 1}, on a : an = n= 1 On peut ecrire : B (z ) = 1 1 . 2 f (0) B (z ) p 1 2 ln 2 z {z | ! } =B^ (z )= (ln 2) +(2) =6;321:::>6;321 2 2 + z | 1 2 ln 2} {z fonction bien connue avec B^ (z) holomorphe en ln 2 et m^ sur un disque ouvert de centre 0 et de rayon j ln 2 + 2ij. 1. On peut ecrire 1 X B^ (z ) = b^n z n n=0 avec certains coecients b^n tels que 1 n = O((0; 16)n) ^bn = O 6; 321 2. 1 1 [zn] z ln2 2 = [zn] 1 2 ln 2z ln 2 ! z 2 2 1 n = [z ] 2 ln2 1 + ln 2 + ln 2 + : : : 1 1 n = 2 ln2 ln 2 n+1 = 12 ln12 bn = n![z n ]B (z ) n+1 = n! 12 ln12 + O((0; 16)n) = n2! (lg e)n+1 + O(n!(0; 16)n) ! CHAPITRE 4. COMPORTEMENTS ASYMPTOTIQUES Remarque. ln12 = log1e 2 = log2 e = lg e = 1; 44 : : : bn Exemple. Le resultat est n bn n! (lg e)n+1 2 n! 2 (lg e) n+1 extr^emement bon. 1 2 3 5 10 1 3 13 541 10224763 1; 04 3; 002 12; 997 541; 002 10224763 52 Chapitre 5 Entropie 5.1 Introduction Soient V un ensemble ni et p une distribution de probabilites sur V (pv = probabilite de l'element v 2 V ). L'entropie de p est X H ( p) = pv lg pv v 2V Interpretation : H ( p) = X v pv lg 1 pv ! H (p) est une moyenne ponderee des quantites lg p1v . L'entropie est une mesure de l'incertitude associee a la distribution de probabilites. Exemple. = fpile, faceg V 1. 1 2 1 1 1 1 =1 H (p) = lg lg 2 2 2 2 Ppile = Pface = 2. 1 4 3 4 Ppile = ; Pface = 1 1 H (p) = lg 4 4 Remarque. 3 lg 3 = lg 4 3 lg 3 0; 811 4 4 4 H ( p) 0 . Soit n := jV j Lemme. H (p) lg n. p uniforme ) H (p) = P 1 lg 1 n n = lg n 53 54 CHAPITRE 5. ENTROPIE Demonstration. lg n H ( p) = X = X 1 lg 1 + X pv lg pv n n v v |{z} =pv v pv lg 1 npv X = ln12 pv ln np1 v v X 1 1 ln 2 pv np 1 v v 0 | {z } Rappel. 5.2 5.2.1 car ln x x 1 8x 1 B X 1 = ln 2 BBB n1 @ v =0 car uniforme =1 C C pv C C A v | {z } X =1 logc b . loga b = log ca Applications Compression de données Soient un alphabet ni et M un mot (un texte ) sur . Question : comment choisir des codes binaires pour les symboles dans de sorte a ce que la taille de l'encodage resultant de M soit minimum? Attention : les codes doivent ^etre sans prexes, c'est-a-dire que le code d'un symbole ne peut ^etre un prexe du code d'un autre symbole. Exemple. = fi; m; p; sg, M = mississipi. C (i) = 1 C (m) = 010 C (p) = 011 C (s) = 00 jC (M )j = 4 1 + 4 2 + 1 3 + 1 3 = 18 (code optimal) Pour v 2 , soit pv la frequence relative de v dans M . X ! jC (M )j = jM j pv jC ( v ) j v 2 | {z } =#moyen de bits par symbole dans le code C Limite fondamentale : Théorème (Shannon, 1948). H ( p) . Pour tout code C , le #moyen de bits par symbole est toujours 55 CHAPITRE 5. ENTROPIE C'est-a-dire : Pour notre exemple, on a On a donc bien jC (M )j jM jH (p) 8C H (p) 1; 72 jC (M )j 10 1; 72 = 17; 2 18 est bien la taille minimale que l'on peut avoir. 5.2.2 Arbres de Huffman On construit iterativement un arbre comme suit : { Au debut, une racine par symbole dans , pondere par sa probabilite respective ; { Tant qu'il existe au moins deux racines : { Prendre les deux racines v; w de plus petite probabilite ; { Ajouter une nouvelle racine z, qui devient le pere de v et w, et poser pz = pv + pw . Le code de v 2 est obtenu en parcourant l'arbre de la racine jusqu'a la feuille contenant v ; a chaque fois que l'on descend dans le ls gauche, on ajoute un 0; a chaque fois que l'on descend dans un ls droit, on ajoute 1. Théorème. Si C est un code de Human, alors #moyen de bits par symbole est H (p) + 1. C'est-a-dire jC (M )j jM j(H (p) + 1).