IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Mathématiques Discussion :

[complexité] Résoudre les récurences


Sujet :

Mathématiques

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 107
    Points : 56
    Points
    56
    Par défaut [complexité] Résoudre les récurences
    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

  2. #2
    Membre éprouvé Avatar de b_reda31
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 899
    Points : 960
    Points
    960
    Par défaut
    Bonjour,
    En supposant qu'il existe un entier m tel que n = 2^m :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    T(n) = 4T(2^m-1)+2^m
    = 4^2 * T(2^m-2)  + (4 * 2^m-1) + 2^m
    =4^3 * T(2^m-3) + (4^2 * 2^m-2) + (4 * 2^m-1) + 2^m
    =...
    =4^m * T(2^0)  + (4^m-1 * 2^1) + (4^m-2 * 2^2)+...+2^m
    En remplaçant 4^x par 2^x * 2^x on obtient facilement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    T(n) = n²+ n²/2 + n²/4 + n²/8 + ... + n²/n
    = n² (1+ 1/2 + 1/4 + ...1/n)
    Ce qui représente la somme des termes d'une suite géométrique :

Discussions similaires

  1. Comment résoudre les apostrophes dans les requêtes SQL ?
    Par Chatbour dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 03/07/2007, 16h31
  2. Réponses: 2
    Dernier message: 12/05/2007, 23h05
  3. Comment résoudre les erreurs "Event viewer"
    Par flo456 dans le forum Windows Serveur
    Réponses: 12
    Dernier message: 18/04/2007, 10h25
  4. comment résoudre les erreurs de généricité?
    Par broumbroum dans le forum Langage
    Réponses: 4
    Dernier message: 31/10/2006, 11h59
  5. Comment résoudre les dependances
    Par Asmod_D dans le forum SUSE
    Réponses: 5
    Dernier message: 28/07/2006, 09h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo