|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : novembre 2008 Messages : 25 ![]() |
Bonjour tout l'monde !
Je m'attaque aux révisions pour un examen de Complexité ce mardi et attaquant les révisions, je tombe sur une espèce de problème que je sais qu'il y a 4 mois même en m'y forçant je ne comprenais pas, et dû coup, je ne comprend guère plus maintenant ! L'énoncé est très simple : Résoudre la récurrence suivante : T(n) = 4T(n/2)+n avec T(1)=1 - Alors d'une voila ou j'en arrive sans trop de difficulté : T(1)=1 T(2)=4T(1)+2=6 T(4)=28 T(8)=120 on commence toujours par se débarrasser du T(n/X) , ici X =2. Pour ce faire, "changement de variable !", T(n) = T(2^n) Et donc T(2^n) = 4T(2^(n-1))+2^n À partir de là, je bloque, et le pire et qui me rend vraiment fou, c'est que j'ai la correction.... et je comprend chibre de rien xD D'après la correction, la suite " " " logique " " " serait : On pose tn = 4^n . yn //tn , c'est t indice n, et yn, c'est y indice n Mais....WTF ? d'où on le sort ça et pourquoi ? xD La solution finale de l'exercice est la suivante : T(N) = 2N²-N J'ai d'autres exercices, avec aussi la correction, mais toujours cet endroit précis où on sort ce changement de valeur qui s'échappe complètement de ma logique. Donc est qu'une âme charitable pourrait me venir en aide ? existe-t-il un cours , une méthodologie pour apprendre à faire ces récurrences ? celui que j'ai entre les mains ne donne pas assez d'explication... En vous remerciant ! Bonne journée |
|
|
00
|
|
|
#2 | ||||
|
Membre expérimenté
![]() |
Bonjour,
En supposant qu'il existe un entier m tel que n = 2^m : Code :
Code :
__________________
« Il est assez difficile de trouver une erreur dans son code quand on la cherche. C’est encore bien plus dur quand on est convaincu que le code est juste!!» |
||||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com