6

非常に大きな整数 (数百万または数十億桁) を合理的に操作する方法はありますか? 私がしなければならない操作は、単純な +、-、*、そしておそらく / です。

私が探しているのは、上記の操作を妥当な時間 (最新の PC では最大 1 時間) で実行するためのアルゴリズムです。数値に任意のタイプの表現を使用してもかまいませんが、操作ごとに異なる表現が必要な場合は、異なる表現間の変換も妥当な時間内に行う必要があります。

私が調べたすべての大きな数のライブラリは、このサイズの数に使用すると完全に機能しなくなります。これは、そのようなアルゴリズムが存在しないという兆候ですか、それともこれらのライブラリの表現/実装がそのようなサイズに最適化されていないということですか?

編集1時間の制限はおそらく不可能です。10 億回の反復を超える単純なループはそれよりも時間がかからないはずなので、その数値を指定しました。また、O(n) 時間を使用するアルゴリズムを期待していました。24 時間という制限はより合理的に思えますか?

4

1 に答える 1

2

DecInt Python クラスを見たいと思うかもしれません。

これは、非常に長い 10 進整数用に最適化されています。(数値は、O(n) 時間で 10 進数に変換しやすい表現で格納されます)。

次のような操作を実行できます。

  1. O(n ln(n)) の乗算
  2. O(n ln(n)^2) の除算
于 2013-10-28T13:16:27.007 に答える