Salve a tutti..
sto realizzando un programma in C che calcoli il fattoriale di un numero arbitrariamente grandi (la specifica del progetto è quella di calcolare il fattoriale di un milione).
ho creato una piccola libreria per poter rappresentare i numeri in notazione polinomiale in base 100.
Per calcolare il fattoriale uso il metodo del binary splitting e per le moltiplicazioni uso la FFT.
Il programma calcola correttamente n! per n fino a 9000/10000, poi purtroppo succede che col calcolo della trasformata incersa, alcuni valori, a causa dell'arrotondamento, diventino "uni" anzichè "zeri", compromettendo tutti i successivi calcoli.
Le funzioni che uso per la fft sono quelle presenti nel libro Numerical Recipes-Seconda Edizione e si possono trovare anche online (four1.c e twofft.c).
Volevo chiedere a voi quindi se avete mai usato queste funzioni e se avevate mai avuto questi problemi.
In caso contrario, volevo chiederti se avete mai sviluppato un programma del genere e,se si, che librerie avete usato per il calcolo della FFT.
Come ultima cosa vi chiedo se avete mai sviluppato un programma che calcolasse n! di numeri molto grandi, e che algoritmo e strutture dati avete usato.
Vi ringrazio per l'attenzione..