ヤコビ記号

このシンボルを導入したカール・グスタフ・ヤコブ・ヤコビ。
n
012345678910111213141516
11
301−1
501−1−11
7011−11−1−1
9011011011
1101−1111−1−1−11−1
1301−111−1−1−1−111−11
150110100−1100−10−1−1
17 0 11−1 1−1−1−11 1−1−1−11−111

ヤコビ記号( /n) を、様々なk (上) とn (左)に対して示します。以下の規則 (2) により、他のk はnを法として約分できるため、 0 ≤ k < nのみが表示されています。平方剰余は黄色で強調表示されています。ヤコビ記号が −1 であるエントリは平方剰余ではないことに注意してください。また、k が互いに素なnを法とする平方剰余である場合( /n) = 1ですが、ヤコビ記号が1であるすべての要素( n = 9行n = 15行を参照)が平方剰余となるわけではありません。また、 nまたはkのいずれかが平方数の場合、すべての値は非負であることにも注意してください

ヤコビ記号はルジャンドル記号の一般化である。 1837年にヤコビによって導入された[1]この記号は、モジュラー算術やその他の数論の分野で理論的に興味深いが、主な用途は計算数論、特に素数判定因数分解であり、これらは暗号学においても重要である

意味

任意の整数aと任意の正の奇数nに対して、ヤコビ記号( 1つの/n)は、 nの素因数に対応するルジャンドル記号の積として定義されます

どこ

はnの素因数分解です

ルジャンドル記号1つの/p)は、すべての整数aとすべての奇数素数pに対して次のように 定義されます。

空積の通常の慣例に従うと1つの/1) = 1 です。

下側の引数が奇数の素数の場合、ヤコビ記号はルジャンドル記号と等しくなります。

値の表

以下はヤコビ記号の値の表である1つの/nで、n  ≤ 59、a  ≤ 30、n は奇数です。

1つの
n
123456789101112131415161718192021222324252627282930
1 111 11111 1111111 111111111 111111
31−101−101−101−101−101−101−101−101−101−10
51−1−1101−1−1101−1−1101−1−1101−1−1101−1−110
711−11−1−1011−11−1−1011−11−1−1011−11−1−1011
9110110110110110110110110110110
111−1111−1−1−11−101−1111−1−1−11−101−1111−1−1−1
131−111−1−1−1−111−1101−111−1−1−1−111−1101−111
15110100−1100−10−1−10110100−1100−10−1−10
1711−11−1−1−111−1−1−11−111011−11−1−1−111−1−1−11
191−1−11111−11−11−1−1−1−111−101−1−11111−11−11
211−101100−10−1−10−100110−1101−101100−10
231111−11−111−1−111−1−11−11−1−1−1−101111−11−1
25111101111011110111101111011110
271−101−101−101−101−101−101−101−101−101−10
291−1−11111−11−1−1−11−1−11−1−1−11−11111−1−1101
3111−111−11111−1−1−11−11−1111−1−1−1−11−1−11−1−1
331101−10−110−100−1−10110−1−100−101−10−110
351−1110−10−1101110011−1−100−1−1−10−11010
371−111−1−11−11111−1−1−11−1−1−1−11−1−1−11111−11
39110110−1101100−101−10−1101−10100−1−10
4111−111−1−1111−1−1−1−1−11−11−111−11−11−1−1−1−1−1
431−1−11−11−1−1111−111111−1−1−11−1111−1−1−1−1−1
451−10100−1−10010−1101−10100−1−10010−110
471111−11111−1−11−11−1111−1−11−1−111−111−1−1
49111111011111101111110111111011
511−10110−1−10−110110100110−1101−10−110
531−1−11−111−1111−11−1111−1−1−1−1−1−111−1−111−1
5511−110−111100−1110111−10−10−1−101−11−10
571101−10110−1−10−1101−100−10−1−101−10110
591−1111−11−11−1−11−1−1111−11111−1−111111−1

プロパティ

以下の事実、さらには相互法則は、ヤコビ記号の定義とルジャンドル記号の対応する性質から直接導き出されるものである。[2]

ヤコビ記号は、上の引数 (「分子」) が整数で、下の引数 (「分母」) が正の奇数の場合にのみ定義されます。

1. nが(奇数の)素数である場合、ヤコビ記号1つの/n)は対応するルジャンドル記号と等しく、同じように表記されます。
2. ab  (mod n )ならば、
3.

上または下の引数のいずれかが固定されている場合、ヤコビ記号は残りの引数に対して完全に乗法的な関数になります。

4.
5.

二次の相互法則mn互いに素な正の奇整数である場合、

6.

およびそのサプリメント

7.

そして

8.

プロパティ 4 と 8 を組み合わせると次のようになります。

9.

ルジャンドル記号のように:

  • もし1つの/n)  = −1 の場合、a はnを法とした二次非剰余です
  • a がn を法とする平方剰余gcd ( a , n ) = 1ならば、 ( 1つの/n)  = 1 です。

しかし、ルジャンドル記号とは異なり、

もし1つの/n)  = 1 の場合、a はnを法とした平方剰余である場合もそうでない場合もあります

これは、a がn を法とする平方剰余となるためには、 nのすべての素因数を法とする平方剰余でなければならないためです。しかし、例えばa がnの素因数のうちちょうど2つを法とする剰余でない場合、ヤコビ記号は1になります

ヤコビ記号は、正方形と非正方形の観点からは一様に解釈できませんが、ゾロタレフの補題によって順列の記号として一様に解釈できます

ヤコビ記号1つの/n)は、 nを法とするディリクレ指標です

ヤコビ記号の計算

上記の式は、ヤコビ記号を計算するための効率的なO (log a log b ) [3] アルゴリズムにつながります。これは、2つの数値の最大公約数を求めるユークリッドの互除法に似ています。(これは規則2に照らして驚くべきことではありません。)

  1. ルール 2 を使用して、「分子」を「分母」で割ったものを減らします。
  2. ルール 9 を使用して、偶数の「分子」を抽出します。
  3. 「分子」が 1 の場合、ルール 3 と 4 の結果は 1 になります。 「分子」と「分母」が互いに素でない場合、ルール 3 の結果は 0 になります。
  4. それ以外の場合、「分子」と「分母」は互いに素な正の奇数の整数となるため、ルール 6 を使用して記号を反転し、手順 1 に戻ります。

下記のコードに加えて、Riesel [4]はPascalでもこれを提供しています

実装ルア

関数jacobi ( n , k ) assert ( k > 0かつk % 2 == 1 ) n = n % k t = 1 while n ~= 0 do while n % 2 == 0 do n = n / 2 r = k % 8 if r == 3 or r == 5 then t = - t end end n , k = k , n if n % 4 == 3かつk % 4 == 3 then t = - t end n = n % k end if k == 1 then return t else return 0 end end                                                                                              

実装C++

// a/n は (a,n) と表現されますint jacobi ( int a , int n ) { assert ( n > 0 && n % 2 == 1 ); // ステップ 1 if (( a %= n ) < 0 ) a += n ; // 処理 (a < 0) // ステップ 3 int t = 0 ; // ビット 1 と 2 の XOR により、戻り値の符号が決まりますwhile ( a ) { // ステップ 2 while ( a % 4 == 0 ) a /= 4 ; if ( a % 2 == 0 ) { t ^= n ; // "^= n & 6" の可能性もあります。ビット 1 と 2 のみを扱いますa /= 2 ; } // ステップ 4 t ^= a & n & 2 ; // 符号を反転 if a % 4 == n % 4 == 3 int r = n % a ; n = a ; a = r ; } if ( n != 1 ) 0を返す; else if (( t ^ ( t >> 1 )) & 2 ) -1を返す; else return 1 ; }                                                                                                   

素数判定

ヤコビ記号とルジャンドル記号には、もう一つ異なる点があります。オイラーの判定基準公式を合成数を法として用いた場合、結果はヤコビ記号の値と一致する場合もあれば、一致しない場合もあります。実際、-1 や 1 と一致することさえありません。例えば、

したがって、数nが素数か合成数か分からない場合は、乱数aを選び、ヤコビ記号( 1つの/nをオイラーの公式と比較します。これらがn を法として異なる場合、nは合成数です。aさまざまな値に対してn を法として同じ剰余を持つ場合nは「おそらく素数」です。

これは、確率的Solovay–Strassen 素数性テストと、 Baillie–PSW 素数性テストMiller–Rabin 素数性テストなどの改良の基礎となります

間接的な用途としては、ルーカス・レーマー素数判定の実行中にエラー検出ルーチンとして用いることが可能です。この判定は、現代のコンピュータハードウェアでさえ、(2024年10月時点で知られている最大のメルセンヌ素数)を超えるメルセンヌ数を処理する場合、完了までに数週間かかることがあります。名目上のケースでは、ヤコビ記号は次のようになります。

これは最終剰余にも当てはまるため、確率的な妥当性の検証として使用できます。ただし、ハードウェアでエラーが発生した場合、結果が0または1になる確率は50%であり、その後の項では変化しません(別のエラーが発生して-1に戻らない限り)。

参照

注記

  1. ^ ジャコビ、CGJ (1837)。 「Über die Kreisteilung und ihre Anwendung auf die Zahlentheorie」。ベリヒト・アクウィス。ベルリン: 127–136
  2. ^ アイルランド&ローゼン pp. 56–57 または レマーマイヤー p. 10
  3. ^ コーエン、29~31ページ
  4. ^ 285ページ

参考文献

  • コーエン、アンリ(1993年)『計算代数的数論講座』ベルリン:シュプリンガーISBN 3-540-55640-0
  • アイルランド、ケネス、ローゼン、マイケル (1990). 『現代数論への古典的入門』(第2版). ニューヨーク:シュプリンガー. ISBN 0-387-97329-X
  • レンマーマイヤー、フランツ (2000)。返報性の法則: オイラーからエイゼンシュタインまで。ベルリン:シュプリンガーISBN 3-540-66957-4
  • リーゼル、ハンス(1994)、素数と因数分解のためのコンピュータ手法(第2版)、ボストン:ビルクハウザー、ISBN 0-8176-3743-5
  • ジェフリー・シャリット(1990年12月). 「ヤコビ記号を計算する3つのアルゴリズムの最悪ケースについて」 .シンボリック計算ジャーナル. 10 (6): 593–61 . doi : 10.1016/S0747-7171(08)80160-5 . コンピュータサイエンス技術報告書 PCS-TR89-140.
  • ヴァレー, ブリジット; ルメ, シャルリー (1998年10月). ヤコビ記号を計算する3つのアルゴリズムの平均ケース解析 (技術レポート). CiteSeerX  10.1.1.32.3425 .
  • Eikenberry, Shawna Meyer; Sorenson, Jonathan P. (1998年10月). 「ヤコビ記号を計算するための効率的なアルゴリズム」(PDF) . Journal of Symbolic Computation . 26 (4): 509– 523. CiteSeerX  10.1.1.44.2423 . doi :10.1006/jsco.1998.0226.
  • Jacobi 記号を計算する(Wayback Machineの 2016-10-05 アーカイブ) には、計算の手順が表示されます。
Retrieved from "https://en.wikipedia.org/w/index.php?title=Jacobi_symbol&oldid=1321383277"