CALCULER LA FACTORIELLE JUSQU'À 5409! AVEC JSP ET L'AFFICHER SUR BROWSER EN UN T

Scupper 28 Messages postés jeudi 15 octobre 2009Date d'inscription 12 décembre 2013 Dernière intervention - 23 mars 2011 à 04:21 - Dernière réponse : piksou14 1 Messages postés samedi 9 décembre 2017Date d'inscription 9 décembre 2017 Dernière intervention
- 9 déc. 2017 à 02:22
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

http://codes-sources.commentcamarche.net/source/52972-calculer-la-factorielle-jusqu-a-5409-avec-jsp-et-l-afficher-sur-browser-en-un-tableau

Afficher la suite 
Scupper 28 Messages postés jeudi 15 octobre 2009Date d'inscription 12 décembre 2013 Dernière intervention - 23 mars 2011 à 04:21
puisque le serveur a refuser de télécharger le fichier ZIP j'ai du écrire le code séparément :S
cs_janhsh 32 Messages postés lundi 6 novembre 2000Date d'inscription 24 janvier 2015 Dernière intervention - 23 avril 2011 à 01:24
C’est ce que l'on appelle de la programmation trivial ... Tu utilise la définition mathématique de la factoriel pour ton calcul qui est O(n!), c'est à dire très coûteuse en temps...

L'algorithmie nous apprend qu'il existe d'autre méthodes de calcul de factorielle qui sont O(n2), c'est à dire beaucoup plus rapides.
cs_janhsh 32 Messages postés lundi 6 novembre 2000Date d'inscription 24 janvier 2015 Dernière intervention - 23 avril 2011 à 01:47
Voici un algo beaucoup plus rapide

public Xint factorial(int n)
{
if (n < 0){
throw new ArithmeticException("Factorial: n has to be >= 0, but was " + n);
}
if (n < 2){
return Xint.ONE;
} long h n / 2, q h * h; long r (n & 1) 1 ? 2 * q * n : 2 * q;
Xint f = Xint.valueOf(r);
for (int d = 1; d < n - 2; d += 2){
f = f.multiply(q -= d);
}
return f;
}
piksou14 1 Messages postés samedi 9 décembre 2017Date d'inscription 9 décembre 2017 Dernière intervention - 9 déc. 2017 à 02:22
bien
Commenter la réponse de Scupper

4 réponses

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.