[Algorithmes récursifs] Qu'est-ce que c'est ?

Statut
N'est pas ouverte pour d'autres réponses.
Il s'agit d'une procédure, fonction, méthode de classe dont l'exécution entraîne un ou plusieurs appels à elle-même.
Ben c'est comme qui dirait une fonction qui s'appelle elle-même soit d'une façon directe, soit d'une façon indirecte...

un exemple français de récursivité (tautologie)
ordre = arrangement
Arrangement = action d'arranger
arranger = mettre en ordre

Bon, en français on tourne en rond à moins que l'étudiant connaisse un vocabulaire plus étandu, en programmation, on tourne aussi en rond jusqu'à ce qu'une condition soit vérifiée (une close d'évaluation immédiate = sans besoin de réfléchir...)


Exemple pratique : [C++]

Le calcul d'une factorielle (std)

La factorielle d'un nombre (exemple)
Facto de 6 = 6 x 5 x 4 x 3 x 2 x 1 (= 720)
Facto de n = n x n-1 x ...

Code:
long facto(long nbr)
{
   if (nbr >= 0)
   {
      if ((nbr == 0) || (nbr ==1))
           return 1;
      else
      {
           for (long i=(nbr-1) ; i>0 ; i--)
                nbr = nbr * i;
           return nbr;
       }
   }
   else
      return -1;
}
(-1 quand l'utilisateur est trop con pour savoir qu'une facto d'un nombre négatif c'est un peu dur à calculer...)

Façon récursive :

Code:
long Facto(long n)
{
     if (n >= 0)
     {
         if ((n == 0) || (n == 1))
              return 1;
         else
              return n * Facto(n-1);
     }
     else
         return -1;
}


Bon qui pourrait donner un autre exemple intéressant ?
Ne donnez pas un Fibonacci (c'est un mauvais exemple d'application de la récursivité)

Les tours de Hanoï c'est pas mal...
Une recherche d'une valeur dans un tableau ?
Un exemple plus complexe genre Backtracking (pour un labyrinthe par exemple) ?
Autre ?
 
j'vois pas en quoi fibonacci est un mauvais exemple ! c juste que ca complique un peu les choses pour les debutants !
 
1er
OP
TITM4v3rick
[LTF a dit:
Guismo]j'vois pas en quoi fibonacci est un mauvais exemple ! c juste que ca complique un peu les choses pour les debutants !
Ben Fibo, c'est que tu calcules 2 x la même la chose => méthode itérative à préférer.

en gros, c'est fibo(n-1) + fibo(n-2) <= là ça calcul 2 fois là même chose en récursif...

Le récursif, c'est appeller la méthode et dire : est-ce que la close d'évaluation immédiate est remplie ? non => récursif ...
Quand elle est remplie, alors là on effectue le calcul et on remonte les différents niveaux car une fonction est assimilable à son type de retour.
 

La Poubelle

Pou'r allé Danché
Je pensais que le but de la demande d'une ouverture de forum de programmation était pour répondre à des questions et aider. Pas à faire des Tutoriaux.

Pour ca, il existe des sites persos.
 
1er
OP
TITM4v3rick
AGain a dit:
Je pensais que le but de la demande d'une ouverture de forum de programmation était pour répondre à des questions et aider. Pas à faire des Tutoriaux.

Pour ca, il existe des sites persos.

Ceci n'est pas un tuto, sinon j'aurai tapé 50 exemples avec tous les commentaires, j'aurai donné les explications sur tel ou tel choix d'un point de vue performance...


Je n'ai pas parlé d'un forum de programmation... Si je dois attendre qu'un tel forum voit le jour pour poster un sujet concernant un type d'algo...

Si tu maîtrises ce sujet, ben donnes les autres exemples parce que je doute que tous les GamerZ qui trouveront un intérêt à ce thread en connaissent les réponses.
 
R

Riff_Raff

ex membre
AGain a dit:
Je pensais que le but de la demande d'une ouverture de forum de programmation était pour répondre à des questions et aider. Pas à faire des Tutoriaux.

Pour ca, il existe des sites persos.
Même avis...

Je pense que celui qui se demande "tiens donc mais que sont les algorithmes récursifs?", il sera assez malin que pour aller fouiller aux bons endroits...

Je reste perplexe par ce genre d'interventions, même si je n'en mets pas en doute la qualité...
 
1er
OP
TITM4v3rick
Ps : des sites persos sur ce genre de sujet je n'aime pas.

Pourquoi ? Simple, il s'agit de la vision d'un seul gars.
Sur un forum, c'est la discution, c'est le :"ha non non,..."
C'est le "moi je fais comme cela parce que..."
C'est le "pfff, C'est nawak, chez nous on fait comme ça..."



Faut pas oublier qu'ici trainent des gens de l'ulb, de l'ecam, de l'esi, de l'ipl, de la HeRb etc...
Tu vas sur developpez.com c'est la réponse d'un mec qui a sous son nick : modo super qualifié en ...



Euh, c'est parce qu'il y a marqué "fanatique" sous mon nick que je v me foutre en l'air avec un avion dans une tour.
 
1er
OP
TITM4v3rick
Riff_Raff a dit:
AGain a dit:
Je pensais que le but de la demande d'une ouverture de forum de programmation était pour répondre à des questions et aider. Pas à faire des Tutoriaux.

Pour ca, il existe des sites persos.
Même avis...

Je pense que celui qui se demande "tiens donc mais que sont les algorithmes récursifs?", il sera assez malin que pour aller fouiller aux bons endroits...

Je reste perplexe par ce genre d'interventions, même si je n'en mets pas en doute la qualité...

Ben celui qui est assez malin pour se demander ce qu'est le netcode ne devrait jamais venir poster ici.
Idem pour celui qui veut connaître les résultats de F1, le dernier jeux vidéo, le dernier film au cinéma etc...

Pourquoi venir ici, demander qlq chose sur l'overclocking ou sur le Tuning PC ? Ya bien d'autres sites à ce sujet.

Ici, c'est une sorte de cercle...
On peut poser une question sur tout et n'importe quoi (enfin, c'est relatif aux règles de GamerZ) sans pour autant devoir se taper 500000 sites...
 
1er
OP
TITM4v3rick
Pourquoi Fibonacci est-il un mauvais exemple de récursion ?
 

La Poubelle

Pou'r allé Danché
TITM4v3rick a dit:
Riff_Raff a dit:
AGain a dit:
Je pensais que le but de la demande d'une ouverture de forum de programmation était pour répondre à des questions et aider. Pas à faire des Tutoriaux.

Pour ca, il existe des sites persos.
Même avis...

Je pense que celui qui se demande "tiens donc mais que sont les algorithmes récursifs?", il sera assez malin que pour aller fouiller aux bons endroits...

Je reste perplexe par ce genre d'interventions, même si je n'en mets pas en doute la qualité...

Ben celui qui est assez malin pour se demander ce qu'est le netcode ne devrait jamais venir poster ici.
Idem pour celui qui veut connaître les résultats de F1, le dernier jeux vidéo, le dernier film au cinéma etc...

Pourquoi venir ici, demander qlq chose sur l'overclocking ou sur le Tuning PC ? Ya bien d'autres sites à ce sujet.

Ici, c'est une sorte de cercle...
On peut poser une question sur tout et n'importe quoi (enfin, c'est relatif aux règles de GamerZ) sans pour autant devoir se taper 500000 sites...
Bon, maintenant que tu insistes et que j'ai eu du temps à perdre. J"ai juste vérifier la mauvaise impression qui me reste dans la gorge, càd voir si on s'est pas fait entuber pour cette histoire de forum Programmation dont j'étais pour suite à l'initiative que je pensais être juste.

Il existe un formidable Outil qui s'appelle "TROUVER TOUS LES MESSAGES" pour titM4v3rick.

A part une question le 1er septembre pour du SQL. ET te prendre le chou pendant plusieurs jour avec GRIZ (en debut juillet pour les wallpaper). Tu ne frequentes PAS ce forum HTML d'habitude.

C'est bien d'aimer le C++ au point de vouloir donner des cours aux autres. Mais IMPOSER des threads alors que personne ne te demande rien, c'est lourd.

Il existe plusieurs sites complets et beaucoup plus clair fait par des personnes qui ont beaucoup plus d'experiences que toi (et moi aussi). Savoir utiliser un concept est une chose, pouvoir l'expliquer en est une autre (ps. : je connais un petit génie du point de vue programmation , par contre je ne suis pas assez fou pour lui demander des explications car il embrouile plus qu'autre chose).
 
1er
OP
TITM4v3rick
Pourquoi ne suis-je jamais venu ou presque ici ?


Raison simple : Html & WebDesign ...
HTML, aucun problème, un manuel en main et hop je sais tout faire, juste des balises à replacer, rien de bien compliqué.

WebDesign, ben à part une retouche ou deux de temps à autre, voilà, j'ai pas bcp d'intérêt pour cette partie.


Maintenant m'en faire un reproche ???


Un forum de programmation serait totalement à part du forum HTML & WebDesign, PHP tel que connu à l'heure actuelle.
Pourquoi alors poster ici ? Simple, tjs en rapport avec les règles de GamerZ : poster là où le sujet est le plus proche si aucune équivalence existe.

poster dans Hardware : rien avoir
poster dans Software : rien avoir, entre manipuler, utiliser et développer ya un monde...
HTML, PHP, déjà ya du langage interprété puis un pseudo langage Orienté Objet.
 
1er
OP
TITM4v3rick
C'est bien d'aimer le C++ au point de vouloir donner des cours aux autres. Mais IMPOSER des threads alors que personne ne te demande rien, c'est lourd.


Mdr celle là!

On pourrait le lacher à tous les posteurs sur un forum...
Tu imposes un sujet sur le netcode alors que personne ne veut en parler.
Tu imposes un sujet sur le tuning de TON pc.
Tu imposes ta vision sur le code HL2 "volé" ...
 

LeTho

RedCap
calmons nous, on va pas repartir dans une discussion sans fin.
De toute façon, yaura pas de forum programmation pour le moment.

Merci de restez zen
 

La Poubelle

Pou'r allé Danché
TITM4v3rick a dit:
C'est bien d'aimer le C++ au point de vouloir donner des cours aux autres. Mais IMPOSER des threads alors que personne ne te demande rien, c'est lourd.


Mdr celle là!

On pourrait le lacher à tous les posteurs sur un forum...
Tu imposes un sujet sur le netcode alors que personne ne veut en parler.
Tu imposes un sujet sur le tuning de TON pc.
Tu imposes ta vision sur le code HL2 "volé" ...
T'as pas envie de faire ton site privé sur la programmation?

Raison la plus logique, peu de chance d'être fréquenté à cause de la multitude de site , meme si il est bien réalisé.

Facilité: Venir essayer de déposer sa façon de programmer sur un forum déjà fréquenter.


Pour l'audace, Bravo. Tu ferais un bon commercial. Tu ne fréquentais plus que rarement cette section du forum et maintenant tu y vis apres la mise en suspens du forum programmation.

L'analyse de l'existant mon cher, ca sert aussi dans autre chose que de la programmation.

TITM4v3rick, Je suis lourd et assez rustre par moment (et la marie, vient traire les vaches). Mais j'ai une qualité qui semble te manquer: "Savoir se remettre en question".
 

La Poubelle

Pou'r allé Danché
LeTho a dit:
calmons nous, on va pas repartir dans une discussion sans fin.
De toute façon, yaura pas de forum programmation pour le moment.

Merci de restez zen
Sorry LeTho, j'avais posté avant de lire ton message.

Que j'ai tort ou pas , c'est mon impression par rapport à cette attitude :? , peut être que le temps me fera changer d'avis
 

LeTho

RedCap
AGain, je suis plus ou moins d'accord avec toi, même si je n'ai pas à prendre position.

Par contre, fais attention à ce que tu dis sur les commerciaux hein...
 
1er
OP
TITM4v3rick
Quoi ya des forums privés pour certains GamerZ ?


je n'enfrain aucune règle en postant ici.
Si le sujet ne t'intéresses guère, pk venir y répondre ?


C'est pas parce que je vois un thread sur euh, le coefficient de flexibilité de la queue de la vache (pour rester dans un domaine proche des vaches et de la marie) que je vais aller poster...



Ps : je n'impose pas de façon de programmer, je propose, c'est toute une nuance et si qqn à une meilleure façon je n'ai jamais dit que je ne l'adopterai pas, vu que c'est le vrai but recherché.




Mais bon, la question reste : Pk Fibo n'est pas le meilleur exemple d'algo dans le domaine de la récursivité?
Je l'ai dis, mais j'aimerai voir une réaction, ou une traduction dans la langue d'un autre fermier (vu qu'on me considère comme une sorte de bourrin.)
 

La Poubelle

Pou'r allé Danché
LeTho a dit:
AGain, je suis plus ou moins d'accord avec toi, même si je n'ai pas à prendre position.

Par contre, fais attention à ce que tu dis sur les commerciaux hein...
Pour être un bon commercial, il faut :

- avoir de l'audace;
- être sur de soi;
- savoir vendre son produit.
- savoir écouter.

Non ? :wink:
 

kiri

Elite
Ici aussi on se prends la tête mais ca vole déja plus haut que les "va te pendre" du forum Counter-Strike. :mrgreen:
 
1er
OP
TITM4v3rick
Tu dévies du sujet. Je pose une question, je donne une réponse puis j'en pose d'autres qui attendent des réponses, vu que je connais certaines façons mais pe pas toutes.




Alors, les cyberPgm, à vos claviers. :D
 
Statut
N'est pas ouverte pour d'autres réponses.
Haut