Тест Люка — Лемера — Ризеля: различия между версиями

[отпатрулированная версия][отпатрулированная версия]
Содержимое удалено Содержимое добавлено
стилевые правки (был), оформление, проверка орф.и пункт.
м оформление
Строка 1:
'''Тест Люка — Лемера — Ризеля ''' (''LLR'') — [[тест простоты]] для чисел вида <math>N = k \cdot 2^n-1</math> с <math>2^n > k</math>
(подмножество <math>3 \cdot 2^n - 1</math> таких чисел называется [[Числа Сабита|числами Сабита]]).
Разработан [[Ханс Ризель|Хансом Ризелем]] и базируется на [[Тест Люка — Лемера|тесте Люка — Лемера]], является самым быстрым детерминированным алгоритмом для чисел такого вида<ref>Для проверки простоты похожих на эти [[Число Прота|чисел Прота]]  — <math>N = k \cdot 2^n+1</math> используется либо [[Теорема Прота]] ([[Лас-Вегас (алгоритм)|вероятностный алгоритм]]), либо один из детерминированных алгоритмов, описанных Брилхартом, Лемером и Селфриджом в 1975 году-  — см. {{harvnb| Brillhart, Lehmer, Selfridge|1975}}</ref>.
 
== Алгоритм ==
Алгоритм очень похож на тест Люка  — Лемера, но начинается со значения, зависящего от <math>k</math>. Для алгоритма используется последовательность Люка <math>\{u_i\}</math>, задаваемая для <math>i>0</math> формулой:
 
: <math>u_i = u_{i-1}^2-2</math>.
 
<math>N</math> является простым в том и только в том случае, когда оно делит  <math>u^n-2</math>.
 
== Поиск стартового значения ==
* Случай <math>k = 1</math>. Если <math>n</math>  — нечётно, то берётся значение <math>u_0 = 4</math>. Если <math>n \equiv 3 \pmod 4</math>, то берётся <math>u_0 = 3</math>. Для простого <math>n</math>  — это [[числа Мерсенна]].
* Случай <math>k = 4</math>. Значение <math>u_0 = 5778</math> можно использовать для всех <math>n \equiv 0, 3 \pmod 4</math>n ≡ 0, 3 (mod 4).
* Если <math>k \equiv 1,5 \pmod 6</math> и <math>N</math> не делится на 3, можно использовать значение <math>u_0 = (2+\sqrt{3})^k+(2-\sqrt{3})^k</math>.
* В остальных случаях <math>k</math> делится на 3 и выбрать правильное стартовое значение ''u''<sub>0</sub> значительно труднее.