Discuter:Factorielle
Un article de Wikipédia, l'encyclopédie libre.
Ah ben c'est sympa de modifier mon code des factorielles pour faire un truc moins bien :\ (pas a la norme ANSI, variables qui servent a rien..) -- Nicolas
Je ne suis pas d'accord. Mon code est beaucoup plus clair, et plus simple. Je trouve ta boucle
for (res = nb--; nb; --nb)
beaucoup trop ésotérique pour du code qui est sensé éclairer le lecteur. Le code de la version récursive était inutilement embrouillé et cryptique. Quand à la norme ANSI... je programme en C++ pas en C, corriges-moi si tu veux, mais il me semble malgré ma faible connaissance du C (par opposition au C++) que mon code est 100% ANSI. --FvdP 27 oct 2003 à 23:06 (CET)
[plus tard]
Question de goût, sans doute, mais j'aime pas initialiser des variables étrangères à la boucle (comme "res") dans la boucle... Donc je préfère çà:
int res = 1; for ( ; n > 1; n--) res *= n; return res;
à ceci:
int res; for (res = 1; n > 1; n--) res *= n; return res;
mais enfin bon soit je ne dis plus rien ? --FvdP 27 oct 2003 à 23:38 (CET)
- No problem. Je met de préférence l'initialisation principale dans le boucle même si ce n'est pas la variable d'induction; mais c'est pareil pour moi. -- Looxix
Commentaire de modification de Nicolas: "Mathematiquement, la decrementation est plus adaptee, car on ecrit 5! = 5 * 4 * 3 * 2 * 1 et non pas 5! = 1 * 2 * 3 * 4 * 5. De plus, le if permet de visualiser tout de suite l'exception mathematique."
- on n'écrit pas plus 5*4*3*2*1 que 1*2*3*4*5 et la dernière version du code de Looxix fait 5*4*3*2*1 (lis-le bien !) (ou plus exactement, il est vrai, 1*5*4*3*2.)
- 0 n'est précisément pas une exception mathématique de la définition de factorielle. Ca se voit bien en regardant à l'envers: n! = (n+1)!/(n+1) donc en particulier 0! = 1!/1 = 1.
--FvdP 28 oct 2003 à 00:01 (CET)
Pourquoi utiliser de match dans le code caml alors que de simple if suffisent et seraient plus lisible pour le lecteur non initié ? 195.220.159.165
[modifier] Phrase :
Bonjour,
je ne comprend pas cette phrase :
Elle permet à deux nombreux identifés en combinatoire d'être valides pour des tailles nulles.
Je pense qu'il y a une erreur.