1

私は C++ のトレーニングを行っており、XOR リンク リストを使用して次の数値を表すことができるライブラリを作成しようとしています。

999999999 * ( [i=0]Σ[999999999] 1000000000 ^ i )

たとえば、私の番号が711381450277869054011の場合、次のように表されます。

711 * 1000000000^ 2 + 381450277 * 1000000000^ 1 + 869054011 * 1000000000^ 0

または単に:

711 * X^ 2 + 381450277 * X^ 1 + 869054011 * X^ 0

ここに画像の説明を入力

クラスの演算子をオーバーロードしました*が、使用したアルゴリズムは扱いにくいと思います。

カラツバのアルゴリズムを使おうと思ったのですが、再帰的なのでスタックオーバーフローしてしまいます。

次に、 Toom-3 アルゴリズムを調べました。気に入ったのですが、まだ負の数をプログラムしていなかったので適用できませんでした。

私の質問は次のとおりです。あなたが提案するアルゴリズムは、多項式の乗算に最適ですか? 私が見る必要がある良いアルゴリズムはありますか?

4

1 に答える 1

3

高速フーリエ変換を使用して実行できます。非再帰的な実装も存在します。

于 2012-03-15T20:00:04.397 に答える