Corto circuito
Questo post è un bellissimo corto circuito: conosco Orlando perché è un amico del GuIT che tra l’altro ho conosciuto l’anno scorso di persona al GuIT meeting di Napoli. E proprio Orlando ha commentato il post di Juhan Precisione su questo stesso blog, di qualche giorno fa su alcuni calcoli.
Questo dimostra che gli appassionati non vedono l’ora di scoprire nuove cose sul proprio argomento preferito.
Chiudo il circuito
Eccomi dunque a chiudere il circuito informatico presentrando un programma in Go che esegue le stesse operazioni eseguite in awk ed in Fortran:
package main import ( "fmt" "math/big" ) func main() { s, u := big.NewInt(2), big.NewInt(1) for i := 1; i <= 10; i++ { // a = s - 1 a := big.NewInt(0).Set(s).Sub(s, u) // s*a + 1 = s*(s - 1) + 1 s.Mul(a, s).Add(s, u) fmt.Println(i, s) } }
Tecnicamente, vorrei farvi notare che è possibile in Go concatenare le chiamate dei metodi come per esempio si legge alla riga 12 del codice sorgente, se il metodo stesso ritorna lo stesso oggetto.
Ho utilizzato il pacchetto dei grandi numeri big necessario perché dopo la sesta iterazione i numeri superano il limite massimo del tipo int64. Certo avrei potuto utilizzare il tipo uint64 ma potevo chiudere il circuito soltanto esagerando alla grande portando il ciclo fino a 10 iterazioni… ecco di seguito il risultato:
1 3 2 7 3 43 4 1807 5 3263443 6 10650056950807 7 113423713055421844361000443 8 12864938683278671740537145998360961546653259485195807 9 165506647324519964198468195444439180017513152706377497841851388766535868639572406808911988131737645185443 10 27392450308603031423410234291674686281194364367580914627947367941608692026226993634332118404582438634929548737283992369758487974306317730580753883429460344956410077034761330476016739454649828385541500213920807
A questo punto, ci sta propio bene un
Alla Prossima!
R.
Commenti
Ottimo Robitex!
In effetti c’è una domanda (sempre la solita) che mi perseguita dal primo commento di Orlando: che linguaggio usate/si usa/dovete usare?
Mi sa che dovremo riparlarne 😉
Ciao Juhan, Naturalmente dipende in modo essenziale da cosa si vuole ottenere ed in quale ambito professionale ci si trova, ma tra i fattori di scelta di un linguaggio io aggiungo sempre il divertimento e la voglia di imparare cose nuove. In ambito lavorativo io oggi uso LaTeX per la documentazione, Lua o — sempre più — Go per l’elaborazione e SQLite o PostgreSQL per i dati, con l’obiettivo di risolvere il problema presto, bene e in modo affidabile. Ovvio che sono disponibile a riparlarne assieme come vuoi e quando vuoi. Un saluto. R.
Il giorno 23 settembre 2013 11:37, Ok, panico
Non subito ma comincio a pensare a una bozza; poi dipenderà dai commenti. O forse è l’occazione per provare un sondaggio.
Ok (panico) d’accordo.
R
Roberto, che bello sentirti anche qui :-). Eh sì, le passioni sono davvero tante. Credo che al 99.9% di non riuscire a venire al prossimo GuIT_meeting, ma mai dire mai.
E intanto aspetto il sondaggio 🙂
A presto,
Orlando
Figurati io nel ritrovarti su Ok, panico.
Speriamo tu possa venire a Roma…
Ciao.