|
FFTを用いて多倍長乗算をしてみた FFTを用いると多桁の乗算が高速に計算できます。 私はFFTについて良く分からないので、汎用 FFT パッケージで公開されいるものをありがたく使わせて頂くことにしました。(使用したのは fft.zip 内の fftsg.c ) また、FFTを用いた乗算方法についてはFFTとAGMによる円周率計算プログラムというページにと以下のような記述がありました。
このプログラムは例として 985617673431 * 712375473872 を計算します。 また、BCC5.5.1でコンパイルするには以下のようにします。 bcc32 fft_mul.c fftsg.c プログラム中、以下のような記述がありますが、これについては良く分かりませんが、こうしないと計算できません。 c[0]=a[0]*b[0]; c[1]=a[1]*b[1]; 追加 上のサンプルプルグラムでは桁数を多くすると正しく計算できないことが判りました。正しく計算出来ように直したのがこのプログラムです。 関連 円周率計算ソフト Windows版 逆数を求めるプログラム 円周率100万桁を計算する 人気ベスト20(ページ内) トップページに戻る 作成日2005/6/8,最終更新日2008/04/11 |