Impossible d'augmenter la limite maximale d'AWK pour la factorielle
Question
J'exécute le code AWK et j'obtiens
The factorial of 200 is inf
Cela suggère que AWK n'utilise pas le même module int standard IEEE que Python. Il semble que la limite d'AWK soit de 170!.
Comment faire comprendre à AWK autant de grands entiers que Python?
La solution
De ici :
La représentation interne de tous les nombres, y compris les entiers, utilise des nombres à virgule flottante double précision. Sur la plupart des systèmes modernes, ils sont au format standard IEEE 754.
Python peut avoir des entiers de de n'importe quelle longueur . , en fonction de la mémoire disponible. Ceci est indépendant de IEEE 754. BTW, cette norme donne la limite d’un flottant double précision à environ 10 ^ (+/- 308). La valeur de log10 (factorielle (171)) est > 309. Voir aussi Double précision et Ce que tous les scientifiques devraient savoir sur l'arithmétique en virgule flottante .