A SUPPRIMER

Cacophrene
Messages postés
251
Date d'inscription
lundi 29 mars 2004
Statut
Membre
Dernière intervention
4 mars 2008
- 29 mai 2005 à 14:13
Saros
Messages postés
921
Date d'inscription
vendredi 20 décembre 2002
Statut
Membre
Dernière intervention
23 septembre 2010
- 21 nov. 2005 à 23:03
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/31685-a-supprimer

Saros
Messages postés
921
Date d'inscription
vendredi 20 décembre 2002
Statut
Membre
Dernière intervention
23 septembre 2010

21 nov. 2005 à 23:03
BOURRIN
:)
Vb Lover
Messages postés
221
Date d'inscription
vendredi 30 novembre 2001
Statut
Membre
Dernière intervention
13 février 2010
5
21 nov. 2005 à 22:10
Pour ma part, je ne suis peut-être pas aussi soucieux de la précision du résultat que vous, mais s'il faut calculer la factorielle d'un grand nombre, j'utilise l'approximation de Stirling:

Fact(x) = Sqrt(2*PI*x)*Exp(-x)*x^x

où PI 3.14159... 4*Atn(1)

Pour x = 200, on obtient une approximation de la factorielle correcte à 0.0417% près... et ce en temps de calculs négligeable. Et en plus on peut mettre des nombres non entiers. Bref, moi ça me suffit :)
us_30
Messages postés
2065
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
14 mars 2016
10
3 juil. 2005 à 00:07
Merçi, à toi Saros ! pour ton soutien...

Bon, et pis maintenant, je vais me lancer dans la division des Grands Nombres...

Anicalement,
Us.
us_30
Messages postés
2065
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
14 mars 2016
10
2 juil. 2005 à 23:56
CETTE fois une avancé... (en math)

J'ai étudié de nouveau l'équation n!=A²-B². Suite aux observations des solutions (comme déjà un peu expliqué avant), j'ai étudié l'équation suivante :

P = A² - B²

mis sous la forme :
P = (n!/x + i)² - (n!/x - j)²

x, i , j entiers qlconques.
tel que n!/x soit entier et >=1.
On voit que grâce à i et j, on peut avoir n'importe quel nombre.

En développant, on a :
P = (2n!/x)(i+j) +i²-j²

Si on pose : P = n! , et en isolant x (un dans chaque côté) , on a :
x = 2(i+j) + x(i²-j²)/n!

Pour que x soit entier, il faut que les deux menbres soient entiers, ce qui implique que le deuxième menbre soit nul (à cause des consitions sur x), et donc SSI i=j.

IL reste alors x=4i.

Remis dans l'équation, elle se transforme en :
n! = (n!/x + x/4)² - (n!/x - x/4)²

Cette équation permet de former toutes les solutions entières tel que n!=A²-B².

Exemple : 6! = 720 (sous forme de tableau)

x (n!/x + x/4) (n!/x - x/4)

4 181 179
8 92 88
12 63 57
16 49 41
20 41 31
24 36 24
28 32,71428571 18,71428571
32 30,5 14,5
36 29 11
40 28 8
44 27,36363636 5,363636364
48 27 3

et 27²-3²=720 , 181²-179²=720 , etc...

On voit que certaines solutions ne sont pas entière, car ici on a généré x sans savoir si n!/x était entier. Pour avoir seulement les solutions entières, il suffit de former tous les produits des nb premiers décomposant n! , pour connaître les valeurs x compatibles.
Prendre x au delà de 48, donne les solutions symétriques avec B négatif.


Si i=1 alors x=4, ce qui amène à la solution la plus élevée, n!=(n!/4+1)²-(n!/4-1)² . La solution la plus petite étant obtenue avec la racine carré. Cela permet de tirer les informations suivantes sur les bornes A et B, dans la relation :

n!=A²-B²

[Vn!] < A <= n!/4+1
1 <= B <= n!/4-1


Cette relation donne presque toutes les réponses que je cherchais, mais dans l'absolu, on ne peut pas l'appliquer pour un algorithme informatique, car elle demande de justement connaître la factorielle... C'est donc une conséquence qui rends la simplification du calcul factorielle caduc. Néanmoins, elle pourait rendre service associée avec d'autres idées...

Voilà ... J'arrêt là, cette recherche... mais pas l'amélioration des algos...

Mais si, vous trouvez une nouvelle façon plus rapide pour le calcul factorielle, n'hésitez pas !



A+
Us.
Saros
Messages postés
921
Date d'inscription
vendredi 20 décembre 2002
Statut
Membre
Dernière intervention
23 septembre 2010

29 juin 2005 à 19:58
Bon là je reviens de vacances (pour la petite histoire) et j'ai pas eu le temps de tout lire
Pour ton histoire de rapports d'exposants de facteurs premiers... Rajouter un terme correcteur serait assez difficile, plus le facteur est grand, plus on a des irrégularités, sur la fin on aura toute une série d'exposants 2, puis toute une série d'exposants 1. Ton rapport vaudra 1 pendant longtemps, puis 2, puis encore une fois 1.

994/498 = 1,99 et quelques, pas exactement 2 :p

Voilà... je vais continuer ma lecture donc...
Afficher les 21 commentaires