В математике тест Лукаса–Лемера–Ризела — это тест на простоту для чисел вида N = k ⋅ 2 n − 1 с нечетным k < 2 n . Тест был разработан Гансом Ризелем и основан на тесте на простоту Лукаса–Лемера . Это самый быстрый детерминированный алгоритм, известный для чисел такого вида. [ необходима цитата ] Для чисел вида N = k ⋅ 2 n + 1 ( числа Прота ) используются либо применение теоремы Прота ( алгоритм Лас-Вегаса ), либо одно из детерминированных доказательств, описанных в Brillhart–Lehmer–Selfridge 1975 [1] (см. тест на простоту Поклингтона ).
Алгоритм очень похож на тест Лукаса–Лемера , но с переменной начальной точкой в зависимости от значения k .
Определим последовательность u i для всех i > 0 следующим образом:
Тогда N = k ⋅ 2 n − 1, где k < 2 n является простым числом тогда и только тогда, когда оно делит u n −2 .
Начальное значение u 0 определяется следующим образом.
Альтернативный метод нахождения начального значения u 0 приведен в Rödseth 1994. [2] Метод выбора гораздо проще, чем тот, который использовал Ризель для случая 3 делит k . Сначала найдем значение P , которое удовлетворяет следующим равенствам символов Якоби :
На практике необходимо проверить лишь несколько значений P , прежде чем будет найдено одно (5, 8, 9 или 11 подходят примерно для 85% испытаний). [ необходима цитата ]
Чтобы найти начальное значение u 0 из значения P, мы можем использовать последовательность Лукаса (P, 1), как показано в [2], а также на стр. 124 [3] . В последнем поясняется, что когда 3 ∤ k , P = 4 можно использовать, как указано выше, и дальнейший поиск не требуется.
Начальным значением u 0 будет член последовательности Лукаса V k ( P ,1), взятый по модулю N. Этот процесс выбора занимает очень мало времени по сравнению с основным тестом.
Тест Лукаса–Лемера–Ризеля является частным случаем проверки простоты порядка группы; мы демонстрируем, что некоторое число является простым, показывая, что некоторая группа имеет тот же порядок, который она имела бы, если бы это число было простым, и мы делаем это, находя элемент этой группы точно такого же порядка.
Для тестов в стиле Люка для числа N мы работаем в мультипликативной группе квадратичного расширения целых чисел по модулю N ; если N — простое число, порядок этой мультипликативной группы равен N 2 − 1, она имеет подгруппу порядка N + 1, и мы пытаемся найти генератор для этой подгруппы.
Начнем с попытки найти неитеративное выражение для . Следуя модели теста Лукаса–Лемера, положим , и по индукции получим .
Итак, мы можем считать, что рассматриваем 2 i -й член последовательности . Если a удовлетворяет квадратному уравнению, это последовательность Люка, и имеет выражение вида . На самом деле, мы рассматриваем k ⋅ 2 i -й член другой последовательности, но поскольку прореживания (берут каждый k -й член, начиная с нулевого) последовательности Люка сами по себе являются последовательностями Люка, мы можем иметь дело с множителем k , выбрав другую начальную точку.
LLR — это программа, которая может запускать тесты LLR. Программа была разработана Жаном Пенне. Винсент Пенне модифицировал программу так, чтобы она могла получать тесты через Интернет. [4] Программное обеспечение используется как отдельными искателями простых чисел, так и некоторыми проектами распределенных вычислений, включая Riesel Sieve и PrimeGrid .
Пересмотренная версия LLR2 [5] была развернута в 2020 году. [6] Она генерирует сертификат «доказательства работы», который позволяет проверить вычисления без необходимости полной повторной проверки.
Дальнейшее обновление, PRST [7], использует альтернативную схему сертификата [8] , которая требует больше времени для проверки, но быстрее генерируется для некоторых форм простого кода. [9]