Тест Люка — Лемера: различия между версиями
[непроверенная версия] | [непроверенная версия] |
Derise (обсуждение | вклад) Нет описания правки |
Derise (обсуждение | вклад) Нет описания правки |
||
Строка 468: | Строка 468: | ||
|accessdate = 2016-12-04 |
|accessdate = 2016-12-04 |
||
|lang = en |
|lang = en |
||
}}</ref>, хотя до сих пор не доказано, что их бесконечно много |
}}</ref>, хотя до сих пор не доказано, что их бесконечно много<ref name="">{{статья |
||
|автор = Marek Wolf |
|||
|заглавие = Computer experiments with Mersenne primes |
|||
|ссылка = |
|||
|язык = en |
|||
|издание = Computational Methods in Science and Technology |
|||
|тип = |
|||
|год = 2013 |
|||
|месяц = |
|||
|число = |
|||
|том = 19 |
|||
|номер = 3 |
|||
|страницы = 157-165 |
|||
|doi = 10.12921/cmst.2013.19.03.157-165 |
|||
|issn = |
|||
|arxiv = 1112.2412v1 |
|||
}}</ref>. |
|||
Также данный тест используется для тестирования [[Аппаратное обеспечение|аппаратного обеспечения]]<ref name="">{{книга |
|||
| автор = Calvin C. Clawson |
|||
| часть = |
|||
| ссылка часть = |
|||
| заглавие = Mathematical Mysteries: The Beauty and Magic of Numbers |
|||
| оригинал = |
|||
| ссылка = |
|||
| викитека = |
|||
| ответственный = |
|||
| издание = |
|||
| место = |
|||
| издательство = Springer |
|||
| год = 2013 |
|||
| volume = |
|||
| pages = |
|||
| columns = |
|||
| allpages = 314 |
|||
| серия = |
|||
| isbn = 1489960805 |
|||
| doi = |
|||
| тираж = |
|||
| ref = |
|||
}}</ref> |
|||
== См. также == |
== См. также == |
Версия от 02:51, 5 декабря 2016
Тест Люка́ — Ле́мера — полиномиальный, детерминированный и безусловный (то есть, не зависящий от недоказанных гипотез) тест простоты для чисел Мерсенна. Сформулирован Эдуардом Люка в 1878 году и доказан Лемером?! в 1930 году[1]. Благодаря этому тесту самыми большими известными простыми числами всегда были простые числа Мерсенна, причём даже до появления компьютеров[2].
Формулировка
Тест основывается на следующем критерии простоты чисел Мерсенна:
Пусть — простое нечетное. Число Мерсенна простое тогда и только тогда, когда оно делит нацело -й член последовательности
(последовательность A003010 в OEIS),
задаваемой рекуррентно:
Для доказательства теоремы в обе стороны воспользуемся функциями Люка:
где — корни квадратного уравнения
с дискриминантом причем и взаимно просты.
В частности, нам потребуются некоторые свойства этих функций, а именно:
- 1.
- 2.
- 3.
- 4. Если , , и
- ,
- то
- 5. Если — простое, такое, что взаимно просто с , то делит нацело ,
- где , а — символ Лежандра.
- 6. Если делится на , и , тогда делится на при целых .
Положим .
- 7. , если , , .
- 8. Если — целое число, и — наименьшее натуральное число такое, что , тогда кратно тогда и только тогда, когда кратно .
Приступим непосредственно к доказательству.
Положим . Рассматривая свойство 4. по модулю при , , имеем:
- ,
а по свойству 2.
- ,
поэтому
и
, поэтому если — простое, то и из последних двух свойств делит
Далее, из свойств 1. и 2.
- ,
но по свойству 3.
- ,
то есть делит , а значит и .
Если делит , то, как было показано при доказательстве необходимости, оно делит и . взаимно просто с по свойству 1., а по свойству 2. — делит . Но тогда каждый простой делитель числа представим в виде , то есть — простое.
Рассмотрим последовательности Люка и и положим .
Покажем сначала, что если — простое, то . Обратимся к свойству 7.
Так как , то 2 - квадратичный вычет по модулю числа N. Следовательно, .
Так как - нечётно, то , следовательно N - квадратичный вычет по модулю 3 и .
Применяя квадратичный закон взаимности, получаем:
- .
По свойству 7. получаем, что , а так как , то , что и требовалось доказать.
Осталось показать, что если , то число - простое.
Покажем, что (минимальный индекс , при котором делится на ) равен .
Так как при любых k , то . По свойству 8. тогда должно быть делителем числа .
Более того, из следует, что . Отсюда следует, что и не имеют общих нечетных делителей. Так что если делится на (нечётное число!) , то с этим числом взаимно просто. Значит, опять по свойству 8., не является делителем чиcла . В сочетании со сказанным выше, это означает, что .
Пусть - разложение числа M на простые множители. Числа больше 3, так как нечетное и выполняется , — простое по условию.
Используя 6., получим , где
- .
По свойству 8. отсюда следует, что t кратно . Положим
- .
Так как — число четное, то
- .
Используем ранее доказанные факты, получим
- ;
Следовательно и либо . Заметим, что — степень двойки. Отсюда следует, что и .
Если — составное, то должно быть , где и — простые числа. Но число p делится на l! Действительно, имеем: делится на . Разделим на с остатком: . Тогда . Первое слагаемое делится на , а второе - меньше, чем . Поэтому может делиться на только если . Но тогда и делится на , что противоречит условию, что - простое число.
Для проверки простоты , последовательность чисел вычисляется по модулю числа (то есть вычисляются не сами числа , длина которых растёт экспоненциально, а остатки от деления на , длина которых ограничена битами). Последнее число в этой последовательности называется вычетом Люка — Лемера[5]. Таким образом, число Мерсенна является простым тогда и только тогда, когда число — нечетное простое, и вычет Люка — Лемера равен нулю.
Возможными значениями являются: (последовательность A018844 в OEIS)[6].
Стоит отметить, что не все простые нечетные нужно проверять при переборе чисел Мерсенна, что следует, например, из следующей, доказанной Эйлером, теоремы[7]:
Если числа и — простые, то .
История
Критерий простоты был предложен французским математиком Люка в 1878 году и усовершенствован американским математиком Лемером?! в 1932 году[1]. В частности, Люка показал, что алгоритм позволяет проверять простоту для простых , но Лемер был первым, кто доказал справедливость критерия для всех нечетных простых [3]. В 1952 году Робинсон при поддержке Лемера провел вычисления на компьютере SWAC с использованием теста Люка — Лемера, результатом которого стало открытие простых чисел и . Позднее в этом же году были открыты , и [2].
Легкость реализации теста и рост вычислительных мощностей компьютеров позволили фактически любому человеку заниматься поиском простых чисел Мерсенна. Так, в 1978 году, два американских старшеклассника Лора Никель и Курт Нолл (Лемер преподавал им теорию чисел) за 3 года работы доказали простоту числа , используя суперкомпьютер CDC Cyber 176 в Калифорнийском университете[8].
Наибольшее из известных простых чисел Мерсенна на 2016 год, полученное с помощью теста Люка — Лемера, это [9].
Вычислительная сложность
Вычислительная сложность теста для числа равна [10], так как в процессе выполнения теста производится возведений в квадрат и вычитаний по модулю . Длина составляет бит, причём самый простой алгоритм умножения чисел имеет сложность . Для ускорения теста следует использовать алгоритмы быстрого умножения больших целых чисел, например, метод умножения Шёнхаге — Штрассена. Сложность теста в таком случае составит .
Примеры
Требование нечетности в условии критерия существенно, так как — простое, но .
Рассмотрим выполнение теста для числа Мерсенна
Следовательно, число — простое.
Покажем, что число — составное. Действительно:
Псевдокод
Lucas–Lehmer(p) var S = 4 var M = 2p — 1 repeat p — 2 times: S = ((S × S) — 2) mod M if S = 0 return PRIME else return COMPOSITE
Вариации и обобщения
Условие в тесте можно ослабить и потребовать лишь, чтобы , откуда немедленно следует
В 1930 году Лемер вывел критерий простоты для чисел вида , где , а в 1969 году Ханс Ризель[англ.] модифицировал тест Люка — Лемера для чисел такого вида, который впоследствии был дополнен Стечкиным[3]. Возможно обобщение теста и на числа вида [11].
Уильямсом[нем.] были доказаны критерии простоты, аналогичные тесту Люка — Лемера, для чисел вида и , а также для некоторых чисел вида , где — простое [3].
Отметим, что есть более общие -методы простоты, которые применимы для любого натурального числа , если известно полное или частичное разложение на простые множители числа или .
Применения
Благодаря тесту Люка — Лемера, простые числа Мерсенна удерживают лидерство как самые большие известные простые числа, хотя и до существования теста, числа Мерсенна почти всегда были наибольшими простыми. Так, в 1460 году была показана простота чисел и [4].
Евклид доказал, что всякое число вида — совершенное, если — простое, а Эйлер показал, что все четные совершенные числа имеют такой вид; поэтому тест Люка — Лемера фактически позволяет найти все четные совершенные числа[12].
Именно этот тест лежит в основе проекта распределённых вычислений GIMPS, занимающегося поиском новых простых чисел Мерсенна[13], хотя до сих пор не доказано, что их бесконечно много[14].
Также данный тест используется для тестирования аппаратного обеспечения[15]
См. также
Примечания
- ↑ 1 2 С. Коутинхо. Введение в теорию чисел. Алгоритм RSA = The Mathematics of Ciphers: Number Theory and RSA Cryptography / под ред. С. К. Ландо, пер. с англ. С. А. Кулешова. — М.: Постмаркет, 2001. — 328 с. — ISBN 590109509Х.
- ↑ 1 2 Paulo Ribenboim. The Little Book of Bigger Primes. — 2nd edition. — Springer, 2004. — 356 p. — ISBN 0387201696.
- ↑ 1 2 3 4 Х. Уильямс. Проверка чисел на простоту с помощью вычислительных машин = Primality testing on a computer // О. Б. Лупанов Кибернетический сборник : журнал / перевод С.В. Чудова. — М.: Мир, 1986. — Вып. 23. — ISBN N/A, ББК 32.81, УДК 519.95.
- ↑ 1 2 Кнут Д. Э. Искусство программирования. Том 2. Получисленные алгоритмы = The Art of Computer Programming. Volume 2. Seminumerical Algorithms / под ред. Л. Ф. Козаченко (гл. 3, разд. 4.6.4 и 4.7), В. Т. Тертышного (гл. 4) и И. В. Красикова (разд. 4.6). — 3. — Москва: Вильямс, 2001. — Т. 2. — 832 с. — ISBN 5-8459-0081-6.
- ↑ Abhijit Das. Computational Number Theory. — 2-е изд. — CRC Press, 2016. — 614 p. — (Discrete Mathematics and Its Applications). — ISBN 1482205823.
- ↑ Raphael M. Robinson. Mersenne and Fermat Numbers (англ.) // Proceedings of the American Mathematical Society : журнал. — 1954. — Май (no. 5). — doi:10.2307/2031878.
- ↑ Трост Э. Простые числа = Primzahlen / под ред. А. О. Гельфонда, пер. с нем. Н. И. Фельдмана. — М.: Физматлит, 1959. — 137 с. — 15 000 экз.
- ↑ Keith Devlin. Mathematics: The New Golden Age. — UK: Penguin, 1998. — 320 p. — ISBN 0141936053.
- ↑ GIMPS Project Discovers Largest Known Prime Number: 274,207,281-1 (англ.). GIMPS (январь 2016). Дата обращения: 1 декабря 2016.
- ↑ Eric Bach; Jeffrey Shallit. Algorithmic Number Theory, Vol. 1: Efficient Algorithms. — The MIT Press, 1996. — 496 p. — (Foundations of Computing). — ISBN 978-0262024051.
- ↑ H. C. Williams. A class of primality tests for trinomials which includes the Lucas-Lehmer test. (англ.). Дата обращения: 28 ноября 2012. Архивировано 23 декабря 2012 года.
- ↑ Г. Хассе. Лекции по теории чисел = Vorlesungen über die Theorie der algebraischen Zahlen / под ред. И. Р. Шафаревича, пер. с нем. В. Б. Демьянова. — М.: Издательство иностранной литературы, 1953. — 528 с.
- ↑ Mathematics and Research Strategy (англ.). GIMPS. Дата обращения: 4 декабря 2016.
- ↑ Marek Wolf. Computer experiments with Mersenne primes (англ.) // Computational Methods in Science and Technology. — 2013. — Vol. 19, no. 3. — P. 157-165. — doi:10.12921/cmst.2013.19.03.157-165. — arXiv:1112.2412v1.
- ↑ Calvin C. Clawson. Mathematical Mysteries: The Beauty and Magic of Numbers. — Springer, 2013. — 314 p. — ISBN 1489960805.
Статья является кандидатом в добротные статьи с 30 ноября 2016. |