Maledetti numeri

di il
29 risposte

Maledetti numeri

Salve a tutti
qualcuno sa come potrei memorizzare numeri di 30 o più cifre ?

29 Risposte

  • Re: Maledetti numeri

    smalldragon ha scritto:


    salve a tutti
    qualcuno sa come potrei memorizzare numeri di 30 o più cifre ?
    http://gmplib.org
  • Re: Maledetti numeri

    Grazie style
    ma vedendo la documentazione la libreria e per linux/unix io uso windows vista visual c++
    non è che sai dove posso trovare il corrispettivo della libreria per windows?
  • Re: Maledetti numeri

    Prova usando qualcosa come:
    long int nome_variabile
  • Re: Maledetti numeri

    smalldragon ha scritto:


    grazie style
    ma vedendo la documentazione la libreria e per linux/unix io uso windows vista visual c++
    non è che sai dove posso trovare il corrispettivo della libreria per windows?

    gmplib.org ha scritto:


    GMP's main target platforms are Unix-type systems, such as GNU/Linux, Solaris, HP-UX, Mac OS X/Darwin, BSD, AIX, etc. It also is known to work on Windows in both 32-bit and 64-bit mode.
    Per l'installazione: http://gmplib.org/manual/Notes-for-Particular-Systems.html#Notes-for-Particular-SystemsIn

    Questa te la proponevo perchè la conosco personalmente, altrimenti cercando su internet ho visto nominata spesso la MIRACL, per altre librerie e info varie: http://en.wikipedia.org/wiki/Arbitrary-precision_arithmetic#Libraries
  • Re: Maledetti numeri

    Grazie style
    proverò con MIRACL
  • Re: Maledetti numeri

    Non funziona neanche miracl
    quando a costruire la libreria mi da errore!
    mi hanno detto che per risolvere il mio problema servirebbero le bigint ma non riesco a trovarle.
    qualche libreria che mi posso scaricare
  • Re: Maledetti numeri

    Provare a trasformarlo in un array?
  • Re: Maledetti numeri

    smalldragon ha scritto:


    bigint ma non riesco a trovarle
    Non credo faccia riferimento alla libreria, per bigint si intende:
    
    long long int
    
    Che è un numero a 64 bit e ( cito da Wikipedia ):
    Con segno: da -9.223.372.036.854.775.808 a +9.223.372.036.854.775.807
    Senza segno: da 0 a +18.446.744.073.709.551.615
  • Re: Maledetti numeri

    Già o provato long long int ma arrivo a 20 cifre ma me ne servorvono almeno altre dieci.
    se non ho il numero corretto di cifre non mi fa i calcoli pultroppo.
  • Re: Maledetti numeri

    smalldragon ha scritto:


    già o provato long long int ma arrivo a 20 cifre ma me ne servorvono almeno altre dieci.
    se non ho il numero corretto di cifre non mi fa i calcoli pultroppo.
    Ti dirò, se non riesci ad usare alcuna libreria esterna, potresti implementarla manualmente con un po' più di difficoltà ( più sono complicate le operazioni che devi eseguire più sarà complicato ).
    Potresti memorizzare i numeri come stringhe ( una versione più complicata sarebbe un array di campi di bit da variabili di 4 bit ciascuna per contenere solo i numeri da 0 a 9, risparmieresti qualcosa sulla memoria se sei un fanatico dell'ottimizzazione ) e implementare delle funzioni base che eseguono somma, sottrazione, moltiplicazione e divisione.. Non è impossibile, e sicuramente funziona ( grosso modo è la logica che si usa nella libreria gmp )..
  • Re: Maledetti numeri

    Ciao smalldragon, ciao Style,

    Se sei interessato solo agli interi prova a guardare questa: fornisce una classe BigInteger. Ho provato a compilarla in Windows col Visual Studio (facendo un nuovo progetto ed aggiungendo i file) e non c' è stato problema.

    I sorgenti sono comprensibili, per cui se vuoi studiarli vanno bene. Per memorizzare il numero viene usata una lista di interi. Potresti pensarla come un sistema di numerazione in base 2 alla 32 in cui ogni intero rappresenta una cifra, le operazioni fondamentali quindi seguono gli algoritmi standard, per cui nella sommma sommi le due cifre (i due interi) e tieni conto del riporto ecc.
  • Re: Maledetti numeri

    Grazie Style
    sto proggettando una cosa del genere affinchè mi possa liberare di tutti questi tipi di variabili per crearne un solo tipo.
    la funzione mi serviva proprio per effettuare le conversioni tra il mio formato e quello standard.

    grazie barba59
    senza i tuoi consigli rischierei di reinventare la ruota solo che al posto di farla tonda la farei quadrata.
    a proposito c'è pure la documentazione sulle funzioni che ci sono all'interno?
  • Re: Maledetti numeri

    Per la documentazione non saprei, comunque il tutto è molto semplice, una classe chiamata BigInteger con dei metodi per fare le operazioni fondamentali. Poi ho visto che dove serve è commentata.
  • Re: Maledetti numeri

    Scusa barba ma per creare la libreria, visto che non ci sono istruzioni,
    devo utilizzare tutti i file *.hh e tutti i file *.c++ o qualche file deve essere escluso?
    poi l' precompiled header deve essere attivata o disattivata ?
Devi accedere o registrarti per scrivere nel forum
29 risposte