Skip to main content
QUICK REVIEW

[論文レビュー] An O(M(n) log n) algorithm for the Jacobi symbol

Richard P. Brent, Paul Zimmermann|arXiv (Cornell University)|Apr 13, 2010
Algorithms and Data Compression参考文献 2被引用数 4
ひとこと要約

この論文では、連分数やガウスの恒等式に依存せずに、2つの $n$-ビット整数のヤコビ記号を計算する $O(M(n)\text{log }n)$ アルゴリズムを提示している。二進再帰的GCD手法を用い、商列を効率的に処理することで、部分的2次時間計算量を達成しており、10,000桁を超える入力に対してGMPの2次的実装を上回ることが示されている。

ABSTRACT

The best known algorithm to compute the Jacobi symbol of two n-bit integers runs in time O(M(n) log n), using Schönhage's fast continued fraction algorithm combined with an identity due to Gauss. We give a different O(M(n) log n) algorithm based on the binary recursive gcd algorithm of Stehlé and Zimmermann. Our implementation - which to our knowledge is the first to run in time O(M(n) log n) - is faster than GMP's quadratic implementation for inputs larger than about 10000 decimal digits.

研究の動機と目的

  • 2つの $n$-ビット整数のヤコビ記号を計算する部分的2次的アルゴリズムの開発。
  • シューナッハの連分数アルゴリズムやガウスの恒等式に依存しない、より単純な代替手法の提供。
  • 二進GCD技術のみを用いて $O(M(n)\log n)$ 時間計算量を達成すること。
  • アルゴリズムの実装とベンチマークを実施し、大規模な入力に対して既存の2次的実装を上回る性能向上を示すこと。
  • 高性能な数論的計算のための、正当に効率的で実用的な手法の提供。

提案手法

  • ステーレ・ジンマーマンの二進再帰的GCDアルゴリズムを変更し、ヤコビ記号を直接計算する。
  • 正の商を用いた二進除算を用いて、正の値を維持し、終了を保証する。
  • 正の商を使用しても終了するための修正された停止基準を導入する。
  • 恒等式を用いたヤコビ記号の記号的変換を実施:$(bc|a)=(b|a)(c|a)$、$(2|a)=(-1)^{(a^2-1)/8}$、および奇数 $a,b$ に対して $(b|a)=(-1)^{(a-1)(b-1)/4}(a|b)$。
  • イテレーションを「良い」「悪い」「悪い(悪い)」に分類し、『悪い』イテレーションの列を1つの『無害な』ステップに統合することで、最悪ケースの計算量を $O(M(n)\log n)$ に低減する。

実験結果

リサーチクエスチョン

  • RQ1連分数やガウスの恒等式に依存せずに、二進GCD技術のみを用いてヤコビ記号を $O(M(n)\log n)$ 時間で計算できるか?
  • RQ2ヤコビ記号の二進GCDベースのアルゴリズムの最悪ケース時間計算量は何か? そして、$O(M(n)\log n)$ に低減可能か?
  • RQ3新しいアルゴリズムの性能は、GMPの2次的アルゴリズムなど既存実装と比較して、大規模な入力に対してどうなるか?
  • RQ4提案されたアルゴリズムにおける1イテレーションあたりの平均ビット削減量は何か? また、標準的な二進GCDと比較するとどうか?
  • RQ5このアルゴリズムは実装上で効率的に動作するか? どの入力サイズで既存手法を上回るのか?

主な発見

  • 提案されたアルゴリズムは、$O(M(n)\log n)$ 時間計算量を達成しており、既知の最良理論的境界と一致する。
  • この境界に到達する最初のアルゴリズムであり、シューナッハの連分数アルゴリズムやガウスの恒等式に依存しない。
  • 実装は、約10,300桁(34,240ビット)を超える入力に対して、GMPの2次的実装を上回る。
  • 100万ワードの64ビット整数入力では、約83.1秒、4750万回のイテレーションを要し、理論的ビット削減率は1イテレーションあたり0.651993ビットである。
  • 実験的結果から、約53.33%のイテレーションが「良い」、26.67%が「悪い」、20%が「無害」であり、期待されるヒューリスティック分布に収束している。
  • $O(n^2)$ のGMP実装と $O(M(n)\log n)$ の新実装のブレーキ・イーブン点は、約535ワード(~34,240ビット、10,300十進桁)で発生する。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。