ho un problema con il fattoriale pur utilizzando un tipo di dato long long int non mi visualizza oltre il fattoriale di 20...
ho un problema con il fattoriale pur utilizzando un tipo di dato long long int non mi visualizza oltre il fattoriale di 20...
usa unsigned long long int oppure passa all'utilizzo di http://gmplib.org/.
Resterai stupito da quello che riesce a fare.
senza usare nessuna libreria esterna il massimo fattoriale che riesci a calcolare è quello di 173 usando double e con una grande approssimazione se vuoi andare oltre devi fare uso di librerie esterne come quelle indicate da antotan
cogli l'attimo
Originariamente inviato da c_junior
senza usare nessuna libreria esterna il massimo fattoriale che riesci a calcolare è quello di 173 usando double e con una grande approssimazione se vuoi andare oltre devi fare uso di librerie esterne come quelle indicate da antotan
ho già usato anche il double ma mi da gli stessi risultati!come devo aumentare la precisione??
Originariamente inviato da antotan
usa unsigned long long int oppure passa all'utilizzo di http://gmplib.org/.
Resterai stupito da quello che riesce a fare.
potresti spiegarmi come posso usare questa libreria...sono un pò ignorante a riguardo
Sei sicuro che il massimo fattoriale che si può calcolare senza utilizzare librerie esterne è quello di 173?Originariamente inviato da c_junior
senza usare nessuna libreria esterna il massimo fattoriale che riesci a calcolare è quello di 173 usando double e con una grande approssimazione se vuoi andare oltre devi fare uso di librerie esterne come quelle indicate da antotan
173! = 3.69....*10^313
Nemmeno con una variabile a 1024 bit riusciresti a contenere tale valore in quanto:
(2^1024) - 1 = 1.79....*10^308
Per calcolare il fattoriale di 20 hai bisogno semplicemente di una variabile a 64 bit.
Prova a stampare sizeof(tua_variabile) e guarda cosa ti stampa. Se quello che ti stampa è un valore < 8 la tua variabile non può contenere 20!
Io ho provato con una variabile di tipo long long int utilizzando dev-c++ e il risultato è corretto.
Se hai una distribuzione linux, devi scompattare la tarball, posizionarti sulla cartella da console e dare:
Mai compilato questa libreria in Windows ma su Google troverai sicuramente qualcosa.codice:./configure make make check make install
no ma io non dicevo di usando il tipo di dato double...si si sono sicuro l'ho anche calcolato sul mio sistema(windows 7 64 bit)Originariamente inviato da sotoli
Sei sicuro che il massimo fattoriale che si può calcolare senza utilizzare librerie esterne è quello di 173?
173! = 3.69....*10^313
Nemmeno con una variabile a 1024 bit riusciresti a contenere tale valore in quanto:
(2^1024) - 1 = 1.79....*10^308
cogli l'attimo
Lui sta dicendo il massimo calcolabile con un double, che solitamente ha come range +/-1.7 * 10^+/-308. 173! comunque è nell'ordine del 10^315, il più grande fattoriale entro 1.7*10^308 è quello di 170 (intorno a 7,257415615*10^306).Originariamente inviato da sotoli
Sei sicuro che il massimo fattoriale che si può calcolare senza utilizzare librerie esterne è quello di 173?
173! = 3.69....*10^313
Nemmeno con una variabile a 1024 bit riusciresti a contenere tale valore in quanto:
(2^1024) - 1 = 1.79....*10^308
Amaro C++, il gusto pieno dell'undefined behavior.
esattissimoOriginariamente inviato da MItaly
Lui sta dicendo il massimo calcolabile con un double, che solitamente ha come range +/-1.7 * 10^+/-308. 173!
cogli l'attimo