2 votes

Le langage de programmation le plus rapide pour le calcul des grands nombres ?

Si je voulais calculer des nombres comportant des centaines de millions de chiffres (entiers positifs), quel serait le langage de programmation le mieux adapté ?

Actuellement, j'utilise python et le script est en cours d'exécution et il a été facile à coder, mais j'ai des inquiétudes quant à sa vitesse.

Je ne connais pas grand-chose à l'assemblage, donc même si c'est peut-être le plus rapide, je préférerais ne pas l'utiliser. Est-ce que le C est le meilleur choix ici ?

Les opérations spécifiques que je dois utiliser sont *, -, % (mod), l'exponentiation, les tests d'égalité (instructions if), les boucles de base et une sorte de capacité de sortie (sortie console par exemple).

Merci beaucoup.

4voto

Karoly Horvath Points 45145

Vous pouvez utiliser BPF avec le C simple, mais notez que beaucoup de langages dynamiques l'utilisent pour les nombres de précision arbitraire, python aussi. Vous ne gagnerez peut-être pas grand-chose à utiliser le C.

2voto

Pubby Points 29386

Bibliothèque GMP avec C/C++.

http://gmplib.org/

0voto

Voici une ressource à consulter. Cela réfute l'argument selon lequel le C est le plus rapide, à moins que vous n'utilisiez la fonction de restriction du C99. Au contraire, le C++ est plus rapide que le C. Il s'agit en fait pour le compilateur de comprendre quand deux opérations distinctes mais séquentielles "lisent" le même emplacement de mémoire. Cela permet au compilateur de réorganiser les opérations à des fins d'optimisation. Il semble que Fortran soit le plus à même de le faire.

http://en.wikipedia.org/wiki/Pointer_aliasing

Vous pouvez également voir ici que Fortran écrase C++ dans la routine Mandelbrot. Mais lorsqu'il s'agit de manipuler du texte, le C++ semble être le meilleur.

http://shootout.alioth.debian.org/u32/fortran.php

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