cs_JCDjcd
Messages postés1138Date d'inscriptionmardi 10 juin 2003StatutMembreDernière intervention25 janvier 20094 6 févr. 2004 à 17:12
Je suis d'accord,
La fonction factorielle est par definition (la plus simple) un fonction reccursive.
De plus c'est le meilleur exemple possible (simple) pour comprendre la reccursivite (je l'ai apprise en programmation comme ca).
Elle est tres instrucive, surtout quand on s'interresse a comment les arguments sont enpiles dans la pile pour les variables locales.
morgandetoi06
Messages postés389Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention17 décembre 20041 6 févr. 2004 à 12:06
c sur qu il faut choisir en fonction du programme, je n ai pas dit que le recursif etait adapté au calcul du factoriel, c juste pour montrer un exemple de fonction recursive simple pour pouvoir comprendre facilement
et bon la note 1/10 c un peu abusé je trouve j ai posté un petit exemple sans pretention pour les debutants c pas la peine de s'amuser à detruire la source comme ça
patriarch24
Messages postés25Date d'inscriptionsamedi 12 avril 2003StatutMembreDernière intervention28 mars 2006 6 févr. 2004 à 11:23
oui en fait ca depends de la definition :)
autant pour moi ma definition est :
0! = 1
i=n
n! = P i
i=1
dans ce cas c plus naturel. Et en effet je suis d accord sur le fait que le probleme des tours de hanoi (celebrissime) est tout bonnement irrealisable en iteratif. Le fait est qu il faut savoir choisir le mode pour chaque probleme. ;)
patriarch24
Messages postés25Date d'inscriptionsamedi 12 avril 2003StatutMembreDernière intervention28 mars 2006 6 févr. 2004 à 11:22
oui en fait ca depends de la definition :)
autant pour moi ma definition est :
0! = 1
i=n
n! = P i
i=1
dans ce cas c plus naturel. Et en effet je suis d accord sur le fait que le probleme des tours de hanoi (celebrissime) est tout bonnement irrealisable en iteratif. Le fait est qu il faut savoir choisir le mode pour chaque probleme. ;)
J'ai bcp travaillé sur la récursivité en tant qu'étudiant.
En fait, il est bcp plus naturel d'écrire la factorielle en récursif car ca colle mieux à la définition mathématiques (ie: n! = 1 pour n=0; n*(n-1)! sinon).
Je trouve ce petit programme très intérressant car assez peu de gens connaissent la récursivité et ses applications (comparée notamment à l'itératif). Cela sert bcp (voir quasiment uniquement) dans l'intelligence artificielle pour créer des modèles.
Toutefois, la factorielle est bcp plus lourde en récursif; mais c'est l'exemple que l'on apprend en premier.
Je vais tout de suite déposer une source récursive pour la résolution d'un problème hyper-complexe: les tours de Hanoï. Bon, ca doit pas être la première fois qu'on la met. Mais elle sera bien commentée (donc je vais mettre du temps pour la poser). En itératif ce problème serait vraiment chaud (faudrait passer par l'étude de la résolution).
patriarch24
Messages postés25Date d'inscriptionsamedi 12 avril 2003StatutMembreDernière intervention28 mars 2006 4 févr. 2004 à 11:29
plus lourde a coder ? pas forcement notamment en ce qui concerne une factorielle ;-)
int res = n;
for ( int i = n-1 ; i > 1 ; i - - )
res *= i ;
return res ;
rien de difficile la dedans si ? bon tu peux aussi changer int en long ca change rien au probleme. mais faut pas dire que c'est lourd c meme plus naturel comme maniere de faire je trouve...
morgandetoi06
Messages postés389Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention17 décembre 20041 3 févr. 2004 à 22:01
les 2 sources que j ai deposé ne sont là qu a titre d exemple de fonctions recursives, et les fonctions recursives ne sont pas tres rapides car le code est à chaque fois chargé dans la memoire.
une boucle est donc plus rapide mais plus lourde à coder...
cs_djl
Messages postés3011Date d'inscriptionjeudi 26 septembre 2002StatutMembreDernière intervention27 novembre 20047 3 févr. 2004 à 21:19
surtout que le choix de la recursiviter pour le calcul d'une factoriel n'est pas justifier car c'est iteratif
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 3 févr. 2004 à 20:43
Une comme ca c'est déja trop
cs_JCDjcd
Messages postés1138Date d'inscriptionmardi 10 juin 2003StatutMembreDernière intervention25 janvier 20094 3 févr. 2004 à 20:35
heu j'ai deja fais une source identique.
mais bon, ... c'est mieux d'en avoir deux !
6 févr. 2004 à 17:12
La fonction factorielle est par definition (la plus simple) un fonction reccursive.
De plus c'est le meilleur exemple possible (simple) pour comprendre la reccursivite (je l'ai apprise en programmation comme ca).
Elle est tres instrucive, surtout quand on s'interresse a comment les arguments sont enpiles dans la pile pour les variables locales.
6 févr. 2004 à 12:06
et bon la note 1/10 c un peu abusé je trouve j ai posté un petit exemple sans pretention pour les debutants c pas la peine de s'amuser à detruire la source comme ça
6 févr. 2004 à 11:23
autant pour moi ma definition est :
0! = 1
i=n
n! = P i
i=1
dans ce cas c plus naturel. Et en effet je suis d accord sur le fait que le probleme des tours de hanoi (celebrissime) est tout bonnement irrealisable en iteratif. Le fait est qu il faut savoir choisir le mode pour chaque probleme. ;)
6 févr. 2004 à 11:22
autant pour moi ma definition est :
0! = 1
i=n
n! = P i
i=1
dans ce cas c plus naturel. Et en effet je suis d accord sur le fait que le probleme des tours de hanoi (celebrissime) est tout bonnement irrealisable en iteratif. Le fait est qu il faut savoir choisir le mode pour chaque probleme. ;)
5 févr. 2004 à 21:59
En fait, il est bcp plus naturel d'écrire la factorielle en récursif car ca colle mieux à la définition mathématiques (ie: n! = 1 pour n=0; n*(n-1)! sinon).
Je trouve ce petit programme très intérressant car assez peu de gens connaissent la récursivité et ses applications (comparée notamment à l'itératif). Cela sert bcp (voir quasiment uniquement) dans l'intelligence artificielle pour créer des modèles.
Toutefois, la factorielle est bcp plus lourde en récursif; mais c'est l'exemple que l'on apprend en premier.
Je vais tout de suite déposer une source récursive pour la résolution d'un problème hyper-complexe: les tours de Hanoï. Bon, ca doit pas être la première fois qu'on la met. Mais elle sera bien commentée (donc je vais mettre du temps pour la poser). En itératif ce problème serait vraiment chaud (faudrait passer par l'étude de la résolution).
4 févr. 2004 à 11:29
int res = n;
for ( int i = n-1 ; i > 1 ; i - - )
res *= i ;
return res ;
rien de difficile la dedans si ? bon tu peux aussi changer int en long ca change rien au probleme. mais faut pas dire que c'est lourd c meme plus naturel comme maniere de faire je trouve...
3 févr. 2004 à 22:01
une boucle est donc plus rapide mais plus lourde à coder...
3 févr. 2004 à 21:19
3 févr. 2004 à 20:43
3 févr. 2004 à 20:35
mais bon, ... c'est mieux d'en avoir deux !