Newsgroup: it.hobby.enigmi
Titolo: Pi greco

Il codice seguente (è scritto in C ed è piuttosto criptico, non so chi ne
sia l'autore) trova le prime 2400 cifre di Pi greco (l'output è in fondo al
messaggio):
#include <stdio.h>
int a=10000, b=0, c=8400; long d; int e=0, f[8401], g;
void main()
{
    for ( ; b-c ; )
        f[b++] = a / 5;
    for ( ; d = 0, g = c * 2; c -= 14, printf("%.4d", e + int(d/a)), e =
int(d % a))
        for (b = c; d += long(f[b]) * a, f[b] = int(d % --g), d /= g--, --b;
d *= b)
            ;
}
Qualcuno ha idea di come faccia?
Ciao :-)
Giorgio
3141592653589793238462643383279502884197169399375105820974944592307816406286
2089
9862803482534211706798214808651328230664709384460955058223172535940812848111
7450
2841027019385211055596446229489549303819644288109756659334461284756482337867
8316
5271201909145648566923460348610454326648213393607260249141273724587006606315
5881
7488152092096282925409171536436789259036001133053054882046652138414695194151
1609
4330572703657595919530921861173819326117931051185480744623799627495673518857
5272
4891227938183011949129833673362440656643086021394946395224737190702179860943
7027
7053921717629317675238467481846766940513200056812714526356082778577134275778
9609
1736371787214684409012249534301465495853710507922796892589235420199561121290
2196
0864034418159813629774771309960518707211349999998372978049951059731732816096
3185
9502445945534690830264252230825334468503526193118817101000313783875288658753
3208
3814206171776691473035982534904287554687311595628638823537875937519577818577
8053
2171226806613001927876611195909216420198938095257201065485863278865936153381
8279
6823030195203530185296899577362259941389124972177528347913151557485724245415
0695
9508295331168617278558890750983817546374649393192550604009277016711390098488
2401
2858361603563707660104710181942955596198946767837449448255379774726847104047
5346
4620804668425906949129331367702898915210475216205696602405803815019351125338
2430
0355876402474964732639141992726042699227967823547816360093417216412199245863
1503
0286182974555706749838505494588586926995690927210797509302955321165344987202
7559
6023648066549911988183479775356636980742654252786255181841757467289097777279
3800
0816470600161452491921732172147723501414419735685481613611573525521334757418
4946
8438523323907394143334547762416862518983569485562099219222184272550254256887
6717
9049460165346680498862723279178608578438382796797668145410095388378636095068
0064
2251252051173929848960841284886269456042419652850222106611863067442786220391
9494
5047123713786960956364371917287467764657573962413890865832645995813390478027
5900
9946576407895126946839835259570982582262052248940772671947826848260147699090
2640
1363944374553050682034962524517493996514314298091906592509372216964615157098
5838
7410597885959772975498930161753928468138268683868942774155991855925245953959
4310
4997252468084598727364469584865383673622262609912460805124388439045124413654
9762
7807977156914359977001296160894416948685558484063534220722258284886481584560
2850

 }
Se quello che si voleva fare era un "casting" allora la sintassi e'
"(int)(d/a)" non "int(d/a)".
"int" e "long" sono nomi riservati in C e non possono essere usati per
variabili, funzioni o altro. Che versione di C hai usato? 
Comunque sia con un po' di buona volonta' ho trovato la versione
originale del programma (senza int e long in effetti) e la spiegazione
dell'algoritmo (per nulla semplice!).
http://www.eleves.ens.fr/home/ollivier/pi/pi.html.en
 
e' in inglese ma se preferisci il francese sostituisci .fr a .en in fondo.
Ciao,
      Gorgo

 
CUT
ehehehe, quello che e' "illegale" in C non sempre e' quello che pensiamo :-)
Se guardate nell' IOCCC winners page (International Obfuscated C Code 
Contest 
http://www0.us.ioccc.org/years.html
 ) trovate delle cose 
veramente criptiche: anche il seguente programma calcola 
un'approssimazione di Pi :-)
#define _ -F<00||--F-OO--;
int F=00,OO=00;main(){F_OO();printf("%1.3f\n",4.*-F/OO/OO);}F_OO()
{
             _-_-_-_
        _-_-_-_-_-_-_-_-_
     _-_-_-_-_-_-_-_-_-_-_-_
   _-_-_-_-_-_-_-_-_-_-_-_-_-_
  _-_-_-_-_-_-_-_-_-_-_-_-_-_-_
  _-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
  _-_-_-_-_-_-_-_-_-_-_-_-_-_-_
  _-_-_-_-_-_-_-_-_-_-_-_-_-_-_
   _-_-_-_-_-_-_-_-_-_-_-_-_-_
     _-_-_-_-_-_-_-_-_-_-_-_
         _-_-_-_-_-_-_-_
             _-_-_-_
}
Dario


Grazie!! Mi ero messo a cercare anch'io su internet ma non ero arrivato a
questa pagina. Quando esisterà un motore di ricerca in grado di leggere nel
pensiero, allora troverò tutto anch'io! O forse un motore del genere esiste
già e io non riesco a trovarlo! :-)))
Ciao :-)
Giorgio