リュカ–レーマー–リーゼル・テスト数学の特に数論において、リュカ–レーマー–リーゼル・テスト(英: Lucas–Lehmer–Riesel test)またはLLRテスト(エルエルアールテスト)とは、 N = k ⋅ 2n − 1(ただし k は k < 2n を満たす奇数)という形の正整数 N に対する素数判定法である。 この判定法はリュカ–レーマー・テストに基づいて、スウェーデンの数学者ハンス・リーゼルにより開発された[1]。 第2項の符号が異なる N′ = k ⋅ 2n + 1(プロス数)に対しては、プロスの定理に基づくラスベガス法や Brillhart–Lehmer–Selfridge[2]の結果に基づく決定的アルゴリズムが用いられる。 アルゴリズムこの判定法のアルゴリズムはリュカ–レーマー・テストに非常によく似ているが、用いる数列 {ui} の初期値 u0 が k によって異なる。 数列 {ui} を以下で定義する。初期値 u0 は次節のように定め、非負整数 i ≥ 0 に対して漸化式を で定める。このとき、N = k ⋅ 2n − 1 が素数である必要十分条件は N が un − 2 を割り切ることである。 初期値 u0 の決定初期値 u0 は以下のように決定される。
により定まる数列 {vn} を用いて u0 = vk ととる。
初期値 u0 を決定する別の方法が Rodseth[3] により提示されている。k が 3 の倍数の場合、この方法はリーゼルが用いた方法よりも簡明である。まず、以下のヤコビ記号についての方程式の解 P を求める:
判定法の仕組みリュカ–レーマー–リーゼル・テストは群論的素数判定法の一種である。すなわち、ある数 N が素数であることを、群の位数が N であり、その群の元の位数も N となるような群を見出すことにより示す。 整数 N に対するリュカ・テストに対しては、N を法とする2次拡大の乗法群が適用できる。すなわち、もし N が素数であるなら、その乗法群の位数は N2 − 1 であり、これは位数 N + 1の部分群を持つので、その部分群の生成元を見出せばよい。 さて、数列 {ui} の閉じた式を求める。リュカ–レーマー・テストに従い、ui = a2i + a−2i と置くと、帰納法によって数列 {ui} が満たすべき漸化式 ui+1 = ui2 − 2 が成り立つことが示される。続いて、数列 wi = ai + a−i の 2i 番目の値について考えると、これはリュカ数列であって、a はある二次方程式の根となり、さらに wi+2 = α⋅wi+1 + β⋅wi という形の漸化式を満たす。実のところ、考慮すべきは k⋅2i 番目の値であるが、リュカ数列の k 番目ごとの値からなる部分列は再びリュカ数列になるため、係数 k を扱うためには異なる初期値を選択すればよい。 LLR ソフトウェアLLR はリュカ–レーマー–リーゼル・テストを実行可能なソフトウェアである。プログラムは Jean Penné により開発された。このソフトウェアは個人的に素数を探索する人々や Riesel Sieve・PrimeGrid といった分散コンピューティングプロジェクトに利用されている。 脚注
参考文献
関連項目外部リンク
|