Numeri grossi? GMP? no, non serve

Il titolo dice già tutto ma forse conviene leggere tutto il post. Pensate alla mia fatica di scriverlo ;-)


Tutto è cominciato con questo post Numeri grossi? GMP!
Mi era sembrata una cosa bella e poi mi ricordo che una volta, parecchio tempo fa, avevo dovuto fare qualcosa di simile con Delphi, su Windows. E avevo utilizzato un modulo tutt’altro che user-friendly di cui non ricordo il nome. GMP funziona alla grande, come si può vedere dal post citato.

Oggi mi sono chiesto: e con Python?
La situazione è piuttosto complessa: esiste un modulo vecchio, non aggiornato ma che si potrebbe usare. Esiste una nuova versione che mi da problemi con l’installazione. Prima di riuscire a capire cosa non va ho deciso per una pausa, Pico, il cagnolino diceva che eravamo in ritardo folle per la passeggiata. E Pico sa essere molto convincente insistente.

E così m’è venuta l’idea di farmi una googlata. Molto proficua.
Qui  si trova

Python 2.x has two types of integers, int of limited size and long of unlimited size. However all calculations will automatically convert to long if needed.

Vero, lo dice anche Guido, quel Guido, lui qui

Feeling that there was still an important use case for unbounded exact numbers, I added a bignum data type, which I called long. I already had a bignum implementation that was the result of an unfinished attempt at improving ABC’s implementation a few years earlier [...]

Mooi, si direbbe dalle sue parti, verifichiamo subito.

Sì, come la volta scorsa :-D

Poi, volendo si possono fare cose ancora più raffinate, ecco.

Ma non finisce qui. Ho trovato questa meravigliosa meraviglia

Proviamo con Perl

#!/usr/bin/perl
use bignum;
print 314159265358979 * 271828182845904, "\n";

OK, e Haskell, too

OK! Poi ci sarebbe un sacco di altre cose da dire ma indovinate?

About these ads
Posta un commento o usa questo indirizzo per il trackback.

Lascia un Commento

Fill in your details below or click an icon to log in:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Connessione a %s...

Iscriviti

Ricevi al tuo indirizzo email tutti i nuovi post del sito.

Unisciti agli altri 37 follower

%d bloggers like this: