Et si je programme la factorielle en double précision?
Si tu travailles en nombre entiers en précision finie, tu ne vas pas représenter beaucoup plus de nombres: tu vois qu'en doublant la capacité de 32 à 64 bits tu es passé de 13 à 21…
Si tu fais de la combinatoire et que les valeurs sont importantes, tu peux utiliser du calcul arithmétique en précision illimitée: on ne travaille plus directement avec les registres, mais — pour simplifier — avec la liste de longueur arbitraire des chiffres.
Si tu fais du caclul numérique tu vas remplacer tes factorielles, coefficients binomiaux et autres «grandes fonctions des nombres» par des approximations, comme te le permet le calcul numérique de la fonction gamma d'Euler ou la formule de Stirling.
Pour calculer les coefficients binomiaux dont tu as besoin, tu peux le faire numériquement (flottants) ou tu peux obtenir une valeur entière en utilisant la relation de Pascal:
(p parmis n) qui te permet de calculer récursivement les coefficients sans passer par des valeurs intermédiaires trop grandes que tu ne peux pas représenter dans tes registres.
[^] # Re: factorielle sur les int ?
Posté par Michaël (site web personnel) . En réponse au message Surfaces de Bézier. Évalué à 7. Dernière modification le 10 décembre 2012 à 07:24.
Salut,
Si tu travailles en nombre entiers en précision finie, tu ne vas pas représenter beaucoup plus de nombres: tu vois qu'en doublant la capacité de 32 à 64 bits tu es passé de 13 à 21…
Si tu fais de la combinatoire et que les valeurs sont importantes, tu peux utiliser du calcul arithmétique en précision illimitée: on ne travaille plus directement avec les registres, mais — pour simplifier — avec la liste de longueur arbitraire des chiffres.
Si tu fais du caclul numérique tu vas remplacer tes factorielles, coefficients binomiaux et autres «grandes fonctions des nombres» par des approximations, comme te le permet le calcul numérique de la fonction gamma d'Euler ou la formule de Stirling.
Pour calculer les coefficients binomiaux dont tu as besoin, tu peux le faire numériquement (flottants) ou tu peux obtenir une valeur entière en utilisant la relation de Pascal:
(p parmis n) qui te permet de calculer récursivement les coefficients sans passer par des valeurs intermédiaires trop grandes que tu ne peux pas représenter dans tes registres.