我想在Ç計算一個非常大的n的階乘(上百萬)來實現程序,用FFT和二元分裂法。階乘使用FFT
我已經實現了一個簡單的庫來表示任意精度整數。 要計算FFT和IFFT,我使用twofft.c和four1.c從例程 「數字食譜用C」
達到一定N,一切正常,但當數字(浮動數組)太大時,在歸一化和舍入之後,具有錯誤的值。
例如,如果我有兩個數與2000位與40個零結束,我必須將它們相乘彼此(使用FFT),當我計算IFFT,一些結束零成爲「一」。 發生這種情況是因爲當我四捨五入這個「零」(例如0.50009)時,它們變成了「一個」。 現在,我不知道我的執行是否錯誤,或者如果我必須以不同的方式舍入這個數字。 我試圖同時使用二元分割法和因式分解,但N> = 9000,結果是錯。
有辦法解決這個問題嗎? 感謝您的關注,並對我的英語不好。
請格式化您的問題!除此之外,'C'不能處理如此大的數字。 – 2013-03-11 12:21:14
請發佈一個說明您的問題的最小代碼示例。 – 2013-03-11 12:21:32
@ bash.d:OP明確表示,他/他實現並使用任意精度整數庫來完成當前任務。 – datenwolf 2013-03-11 12:23:51