CALCUL DU FACTORIEL DES GRANDS NOMBRES EN TOUTE RAPIDITÉ

Signaler
Messages postés
324
Date d'inscription
samedi 18 décembre 2004
Statut
Membre
Dernière intervention
30 octobre 2020
-
Messages postés
35
Date d'inscription
vendredi 7 février 2003
Statut
Membre
Dernière intervention
20 février 2009
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/42308-calcul-du-factoriel-des-grands-nombres-en-toute-rapidite

Messages postés
35
Date d'inscription
vendredi 7 février 2003
Statut
Membre
Dernière intervention
20 février 2009

Slt,

Il faut travailler sur un tableau unsigned long où chaque élément du tableau est un chiffre en base 2^64, ensuite il faut appliquer le bon vieux algo de primaire sur ces chiffres. C'est, d'après moi, la méthode avec le meilleur rapport simplicité/vitesse/espace mémoire.

Les changements de base me semble inutile car pour l'ordinateur une addition se fait sur 32 ou 64 bits.

Cordialement

VDB Tristan
Messages postés
239
Date d'inscription
vendredi 20 octobre 2006
Statut
Membre
Dernière intervention
20 avril 2009

Salut,

Je suis d'accord avec coucou747. Tu peux gagner beaucoup de temps en mettant plusieurs chiffres ensemble.

Un bon compromis est de mettre 4 chiffres dans un int 32bits (ou compter en "base 10000"). Comme on peut en stocker jusqu'a 8, ca permet de multiplier deux "chiffres" sans debordement.

Eric
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
38
ce qui est interessant c'est de bosser sur une base superieure pour diminuer le nombre d'operations et le nombre de retenues, mais apres, on ne peut plus faire int a ... if a > MAXINT... gerer retenue... on doit faire differement :)

c'est marrant ces libs, avec du Cpp, on peut ajouter des templates, de la surcharge d'operateurs, de l'algebre...
sinon, pourquoi
# printf("%d!\n",k);
# puts(f[k]);

et pas
printf("%d!\n %s\n", k, f[k]); ?
Messages postés
173
Date d'inscription
jeudi 20 décembre 2001
Statut
Membre
Dernière intervention
22 août 2008

Je suis impression par l'efficacité de ton programme, alors que la source fait à peine 50 lignes !
Afficher les 9 commentaires