Saros
Messages postés921Date d'inscriptionvendredi 20 décembre 2002StatutMembreDernière intervention23 septembre 2010
-
22 avril 2005 à 11:38
Saros
Messages postés921Date d'inscriptionvendredi 20 décembre 2002StatutMembreDernière intervention23 septembre 2010
-
4 févr. 2006 à 22:02
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
Saros
Messages postés921Date d'inscriptionvendredi 20 décembre 2002StatutMembreDernière intervention23 septembre 2010 4 févr. 2006 à 22:02
oups : (n/e) pas (e/n)
Saros
Messages postés921Date d'inscriptionvendredi 20 décembre 2002StatutMembreDernière intervention23 septembre 2010 4 févr. 2006 à 22:01
On peut affiner la formule en la complétant (utiliser le développement de Taylor de la fonction Gamma en +infini) :
n! = sqrt(2*Pi*n) * (e/n)^n * (1 + 1/(12n) + 1/(288n²) + ....)
L'avantage c'est qu'on obtient une bonne approximation, même pour des petits nombres
cs_Kirua
Messages postés3006Date d'inscriptiondimanche 14 avril 2002StatutMembreDernière intervention31 décembre 2008 4 févr. 2006 à 21:36
Ah voui, j'avais pas vu qu'il précisait "pour n grand", au temps pour moi.
cs_frigidaire
Messages postés1Date d'inscriptionjeudi 2 février 2006StatutMembreDernière intervention 4 février 2006 4 févr. 2006 à 21:02
La formule de Stirling donne un equivalent en +l'infini de n!, donc plus n est grand plus la formule est precise !!!
Utiliser la formule de striling lorsque n est petit n'est pas conseillé !! ;)
cs_Kirua
Messages postés3006Date d'inscriptiondimanche 14 avril 2002StatutMembreDernière intervention31 décembre 2008 25 avril 2005 à 21:12
pour 6! ça donne qd même 710 au lieu de 720 :/ je veux bien que ça ne fait que 1.39%, mais ça va vite faire bcp :/ ceci dit, ça doit être pratique pour se faire une idée de l'ordre de grandeur d'une factorielle trop grande, merci pr la curiosité ;)
Saros
Messages postés921Date d'inscriptionvendredi 20 décembre 2002StatutMembreDernière intervention23 septembre 2010 24 avril 2005 à 11:33
Okay, merci
MetalDwarf
Messages postés241Date d'inscriptionmardi 29 octobre 2002StatutMembreDernière intervention23 janvier 2006 23 avril 2005 à 22:27
Ca se demontre avec des techniques classiques d'analyse, notamment avec les integrales de Wallis (enfin,c'est comme ca que je l'ai fait).
C'est pas tres dur mais ca prend vite 1-2 pages (a la main)
cs_algori
Messages postés868Date d'inscriptiondimanche 26 décembre 2004StatutMembreDernière intervention26 février 20081 23 avril 2005 à 20:24
Saros
Messages postés921Date d'inscriptionvendredi 20 décembre 2002StatutMembreDernière intervention23 septembre 2010 23 avril 2005 à 11:40
Il y a une erreur à 10^-2 près à chaque fois, à peu près..
Ou peut-on trouver plus d'infos sur cette formule ?
cs_algori
Messages postés868Date d'inscriptiondimanche 26 décembre 2004StatutMembreDernière intervention26 février 20081 22 avril 2005 à 23:49
Salut,
Code intéressant...
Sinon, tu pourrais essayer la formule de Stirling pour n! grand.
Formule : n! = sqrt(2*pi*n)*(n/e)^n
avec sqrt la racine carré.
A vrai dire, je sais pas trop ce que ça donne au niveau de l'exactitude.
@++
luhtor
Messages postés2023Date d'inscriptionmardi 24 septembre 2002StatutMembreDernière intervention28 juillet 20086 22 avril 2005 à 20:17
permet d'utiliser les fonctions cin et cout, mais celles ci sont dans un espace de nom particulier qui s'appelle std. Il faut donc dire explicitement qu'on utilise cet espace de nom.
#include
using namespace std;
int main (int argc, char ** argv)
{
...
return 0;
}
Taranael
Messages postés54Date d'inscriptiondimanche 27 février 2005StatutMembreDernière intervention21 juin 20071 22 avril 2005 à 19:58
Sur VC6 je me mange une erreur si j'enlève le .h
Et ça fait quoi au fait using namespace std ?
*Tara qui a raté quelque chose ?*
luhtor
Messages postés2023Date d'inscriptionmardi 24 septembre 2002StatutMembreDernière intervention28 juillet 20086 22 avril 2005 à 11:52
Encore une fois utilise iostream et pas la librairie .h qui n'est plus à utiliser. Et rajoute "using namespace std;"
Saros
Messages postés921Date d'inscriptionvendredi 20 décembre 2002StatutMembreDernière intervention23 septembre 2010 22 avril 2005 à 11:38
Tu devrais faire une classe de traitement de grand nombre, avec toutes les possibilités de calcul classiques...
4 févr. 2006 à 22:02
4 févr. 2006 à 22:01
n! = sqrt(2*Pi*n) * (e/n)^n * (1 + 1/(12n) + 1/(288n²) + ....)
L'avantage c'est qu'on obtient une bonne approximation, même pour des petits nombres
4 févr. 2006 à 21:36
4 févr. 2006 à 21:02
Utiliser la formule de striling lorsque n est petit n'est pas conseillé !! ;)
25 avril 2005 à 21:12
24 avril 2005 à 11:33
23 avril 2005 à 22:27
C'est pas tres dur mais ca prend vite 1-2 pages (a la main)
23 avril 2005 à 20:24
En voici un :
http://www.bibmath.net/dico/index.php3?action=affiche&quoi=./f/factorielle.html
@++
23 avril 2005 à 11:40
Ou peut-on trouver plus d'infos sur cette formule ?
22 avril 2005 à 23:49
Code intéressant...
Sinon, tu pourrais essayer la formule de Stirling pour n! grand.
Formule : n! = sqrt(2*pi*n)*(n/e)^n
avec sqrt la racine carré.
A vrai dire, je sais pas trop ce que ça donne au niveau de l'exactitude.
@++
22 avril 2005 à 20:17
#include
using namespace std;
int main (int argc, char ** argv)
{
...
return 0;
}
22 avril 2005 à 19:58
Et ça fait quoi au fait using namespace std ?
*Tara qui a raté quelque chose ?*
22 avril 2005 à 11:52
22 avril 2005 à 11:38