Java : Calcul de la factorielle d'un grand nombre
Par Jonathan Lermitage le vendredi 11 janvier 2008, 15:26 - Sea, Java and Sun : Java SE ME EE, EDI - Lien permanent
Corrections (look et saisie) du code le vendredi 11 janvier 2008;
Le calcul brutal (ou naïf) d'une factorielle montre très vite ses
limites : le résultat - et même les résultats intermédiaires - ne
tiennent pas dans les types de données classiques de la plupart des
langages (C, Java, etc), etc.Voici donc une petite application Java (Java 5 minimum - JRE 1.5) - avec une interface graphique - calculant la factorielle d'un grand nombre. Celle-ci utilise un changement de base afin de pouvoir représenter un nombre quelle que soit sa taille. Ajoutez le principe de multiplication dans une base donnée, et le tour est joué.
Vous pouvez télécharger le projet Java (5) NetBeans (5.5) sous forme d'archive :
- zip : cliquez-ici (81.21 Ko);
- 7zip : cliquez-ici (60.13 Ko).
dist. Les sources se trouvent dans le répertoire
src.
Quelques tests de performances avec un processeur cadencé à 1.6 GHz :
- 5000! se calcule en moins de 2s;
- 10 000! se calcule en moins de 7s;
- 20 000! se calcule en moins de 29s;
- 40 000! se calcule en moins de 121s;
Codes réalisés en binôme (avec mon camarade Arnaud K.) pour le projet d'Algorithmique et Complexité, 3ème année de licence Informatique à l'Université de Dijon.
Mise à jour des archives JAR : meilleure mise en forme et look plus sympatique :
- zip : cliquez-ici (1.43 Mo);
- 7zip : cliquez-ici (1.40 Mo).
Bienvenue chez un

Commentaires
ce programme est très interessant mais l'archive jar ne fonctionne pas
Bonjour,
que se passe t-il exactement ?
De quelle version de Java disposez-vous, comment lancez-vous l'archive, et sous quel système d'exploitation ? Avec quelle valeur (la factorielle d'un grand nombre prend du temps, et je n'ai pas implémenté de barre de progression) ?
Je n'ai aucun problème avec Java 5 & 6 sous XP et Vista.
Concernant l'utilisation, vous tapez une valeur puis sur le bouton "calculer" (ne pas taper Entrée, sinon ne nombre n'est pas évalué).
[edit] plus de soucis de saisie maintenant.
Excellent, une vraie bombe ce truc ! Avec 10000 ! en moins de 5 secondes...
Le plus vif intérêt pour "Algorithmique et Complexité" serait de disposer d'une librairie de fonctions ultra-rapides pour la factorisation des grands nombres...