Oppure

Loading
11/10/07 14:45
Dami91
Salve a tutti! Ho fatto un prog k trova i numeri primi xò le variabili double perdono precisione e si arrotondano dopo i numeri dell'ordine di 10^15 e quindi nn riesco ad andare oltre questo limite nella "ricerca". Volevo kiedere se esiste un modo di creare variabili di "lunghezza" arbitraria, cioè dv sn io a decidere qual'è il limite max di calcolo. Qualcuno sa aiutarmi??? Thank
aaa
11/10/07 17:14
WARRIOR
Ad ogni tipo di variabile, viene riservato uno spazio in memoria e questo spazio non è arbitrario.
Non mi ricordo bene, però mi sembra che al massimo si possano memorizzare numeri di lunghezza doppia cioè con esponente ^15 (questione di bit ;)). (correggetemi se sbaglio)
aaa
11/10/07 18:19
Dami91
ma cm esitono i tipi standard d variabili ke occupano un certo numero di bit (mi sembra 32 nei long, 64 nei double) non esiste una qualke funzione ke mi permette di impostare la grandezza di un nuovo tipo di variabile, per esempio, a 256 o 512 bit o più???
aaa
11/10/07 18:30
netarrow
no non c'è, nello standard almeno.
Potresti creare tu qualcosa che occupa tot bit in memoria e poi le operazioni le svolgi direttamente in binario, o senza inventarti tu qualcosa ti trovi una clase apposita che permette di memorizzare numeri infinitamente grandi, con unico limite computazionale spaziale la ram e temporale il tempo che ci mette il processore a calcolare le operazioni (più grande sarà il numero + tempo impiegherà;)

Java ad esempio ha BigInteger nella core standard e se cerchi in internet ci sono dei porting per C++ di una classe simile, ne dovresti trovare una versione anche qui sul sito fatta da Zani88.

Nello standard C++ supporta i numeri complessi ma dovresti gestire proprio tu la parte reale e la parte immaginaria e non avendo mai studiato in matematica queste cose non saprei dirti come usarla e se può effetivamente esserti utile(ma indubbiamente è più comoda una classe stile BigInteger); per più info cmq cerca l'header complex
Ultima modifica effettuata da netarrow 11/10/07 18:31
aaa
12/10/07 12:31
Dami91
OK grazie 1000! Bye Bye!
aaa