サンプルコードを書きましたが、よく使われる冪剰余についてもC++サンプルを載せておきます。とき(m_nb)=3};#endifwikipediaの説明にあるようにバイナリ法を用いています。初めに法(n)とするコンストラクタを呼び出します。冪剰余は、exp()メソッドで行います。このアルゴリズムを利用した16進・2進・10進電卓です。整数だけですがおよそ100万桁まで計算できます。(注)Bigintクラスは、多倍長整数を格納する仮想のクラスであり、実在するものではありません。(80bit)が使えません。書いても、64bit精度になります。通常、仮数部53bit(暗黙Bit含め)で不足することはないでしょうが、どうしても仮数部64bitが必要という場合のサンプルクラスです。様々なコンストラクタ、四則演算・比較の他、FPUでサポートしている三角関数や平方根を入れました。namespace#endifLdoubleクラスを使う前に、Ldouble_init()を呼び出して、FPUに拡張倍精度を指示する必要があります。このコードは動作しますが、あまり速くありません。実行速度についてはコンパイラが拡張倍精度をサポートしてくれないと、どうにもなりません。最大値が10進で300桁以上になる場合(拡張倍精度ではおよそ5000桁まで可能)にのみ有効です。Builder等)を利用した方が良いでしょう。18:33多桁の除算や平方根計算を実装したサンプルの16進・2進・10進電卓です。整数だけですがおよそ100万桁まで計算できます。乗算は、実数FFTとKaratsuba法を組み合わせています。この内、実数FFTには、京大の大浦博士のDFTコード(fftsg.c)の一部をFPU化して使っています。使えないため、できるだけFPUを使って精度を高めています。精度が上がると一度に乗算できる桁数が上がり、応答性が向上します。参考に、最大値どうしの乗算が最大の誤差を与えると仮定し、1度に行えるFFT乗算桁数を決定しています。2進→10進変換にもFFT乗算が必要になります。平山博士の「(*2)分割統治法による多倍長演算の高速化」を参考にしました。HTML5版ModifiedSimpson御坂黒岳の黒石SSLマルチサイトのテスト環境ベネッセ個人情報流出XPは終わりですか。