計算した結果が分かれば、元の計算結果が復元できる。これを利用して、普通に多倍長整数の演算を行うより高速に演算するのが、ここで紹介する手法の目的だね。いくつかの基本演算があるわ。大きさによってアルゴリズムを使い分けているようね。ついて理解していると、読みやすいかもね。多倍長整数の割り算を効率的に計算する方法って、あるのかしら...?この様に、多倍長整数の足し算や引き算なら簡単だけど、掛け算や割り算は難しいの。素数を選ぶのがもっとも簡単ね。個の素数があれば十分ね。これは元の計算より高速だね。例題ちょっと人工的な例だけど、以下の様な問題を考えてみて。0<=k_i<=m_iが与えられる。C(m_1,k_1)+...+C(m_n,k_n)の正確な値を、10進表記で出力してください。実行制限時間は数秒です。アルゴリズムが役に立つわ。ビット程度の値になるの。定数時間で計算できるね。n)はおよそ4*10^7だね。愚直解法と比較してみるわね。全部計算して、求めたn個の値を全部足す。この方法だと、数秒で答えを出すのは難しそうだね。