stringtranslate.com

Тест Лукаса-Лемера-Ризеля

В математике тест Лукаса–Лемера–Ризела — это тест на простоту для чисел вида 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 — это программа, которая может запускать тесты LLR. Программа была разработана Жаном Пенне. Винсент Пенне модифицировал программу так, чтобы она могла получать тесты через Интернет. [4] Программное обеспечение используется как отдельными искателями простых чисел, так и некоторыми проектами распределенных вычислений, включая Riesel Sieve и PrimeGrid .

Пересмотренная версия LLR2 [5] была развернута в 2020 году. [6] Она генерирует сертификат «доказательства работы», который позволяет проверить вычисления без необходимости полной повторной проверки.

Дальнейшее обновление, PRST [7], использует альтернативную схему сертификата [8] , которая требует больше времени для проверки, но быстрее генерируется для некоторых форм простого кода. [9]

Смотрите также

Ссылки

  1. ^ Brillhart, John ; Lehmer, Derrick Henry ; Selfridge, John (апрель 1975). "Новые критерии простоты и факторизации 2^m ± 1". Mathematics of Computation . 29 (130): 620–647. doi : 10.1090/S0025-5718-1975-0384673-1 .
  2. ^ ab Rödseth, Öystein J. (1994). "A note on primality tests for N=h·2^n−1" (PDF) . BIT Numerical Mathematics . 34 (3): 451–454. doi :10.1007/BF01935653. S2CID  120438959. Архивировано из оригинала (PDF) 6 марта 2016 г.
  3. ^ Ризель, Ганс (1994). Простые числа и компьютерные методы факторизации . Прогресс в математике. Т. 126 (2-е изд.). Биркхойзер. С. 107–121. ISBN 0-8176-3743-5.
  4. ^ Бонат, Карстен (2010-03-12). "LLRnet поддерживает LLR V3.8! (LLRnet2010 V0.73L)". Great Internet Mersenne Prime Search forum . Получено 17 ноября 2021 г.
  5. ^ Атнашев, Павел. "LLR2 GitHub". GitHub . Получено 2023-11-23 .
  6. ^ "LLR2 установлен на всех крупных проектах LLR". Доски объявлений PrimeGrid . 11 сентября 2020 г. Получено 23 ноября 2023 г.
  7. ^ Атнашев, Павел. «ПРСТ GitHub». Гитхаб . Проверено 23 ноября 2023 г.
  8. ^ Ли, Даррен; Галло, Ив (16 сентября 2022 г.). «Эффективная модульная схема доказательства возведения в степень». arXiv : 2209.15623 [cs.CR].
  9. ^ "Проект SR5 перешел на PRST". Доски объявлений PrimeGrid . 19 июля 2023 г. Получено 23 ноября 2023 г.

Внешние ссылки