4 votes

Quel langage de programmation me permettra de saisir un très long nombre sans le convertir en virgule flottante ?

Quelle serait la meilleure façon de faire ce qui suit.

Entrer un très long nombre, disons 500 000 chiffres, sans qu'il entre dans la notation scientifique, et être ensuite capable de faire des maths avec, comme +2, etc.

Merci d'avance.

EDIT : C'est un nombre entier positif de 500 000 chiffres.

4voto

Mark Rushakoff Points 97350

Haskell (lorsqu'il utilise GHC) dispose également d'un support intégré pour les entiers arbitrairement longs. Voici un extrait montrant la longueur d'un nombre converti en chaîne de caractères.

Prelude> length $ show $ 10
2
Prelude> length $ show $ 1 + 2^2000000
602060
Prelude> let x = 2^200000
Prelude> let y = 2^200000 + 5
Prelude> y - x
5

Ou vous pouvez simplement taper 2^200000 à la console interactive et attendre quelques minutes pour qu'elle imprime les plus de 600 000 caractères. Je me suis dit que cette méthode était un peu plus simple à démontrer.

4voto

Nils Pipenbrinck Points 41006

Common Lisp a un support intégré pour les grands nombres arbitraires aussi...

3voto

lemnar Points 3108

Perl possède un bignum pour faire ce genre de choses, et Python le prend en charge de manière native.

3voto

DigitalRoss Points 80400

Perl, Python, Ruby et Java peuvent tous le faire. Des bibliothèques externes existent pour tout le reste.

J'aime plutôt Ruby et Python parce qu'ils passent automatiquement de Fixnum a Bignum . (Python : int a long .)

3voto

Calyth Points 1368

Ce que vous recherchez n'est pas nécessairement un langage, mais une bibliothèque de précision arbitraire.

GMP serait une implémentation rapide en C/C++, et les langages de script qui manipulent de grands entiers utiliseraient probablement quelque chose comme ça.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X