Категории
Самые читаемые
onlinekniga.com » Научные и научно-популярные книги » Математика » Мир математики. т.3. Простые числа. Долгая дорога к бесконечности - Энрике Грасиан

Мир математики. т.3. Простые числа. Долгая дорога к бесконечности - Энрике Грасиан

Читать онлайн Мир математики. т.3. Простые числа. Долгая дорога к бесконечности - Энрике Грасиан

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 17 18 19 20 21 22 23 24 25 26
Перейти на страницу:

* * *

ПРОЕКТ GIMPS

Широкомасштабный интернет-проект по поиску простых чисел Мерсенна (GIMPSGreat Internet Mersenne Prime Search) начался по инициативе Джорджа Вольтмана и использует сеть соединенных через интернет персональных компьютеров добровольцев (любой желающий может зарегистрироваться). Эти компьютеры работают параллельно и в совокупности представляют собой вычислительные мощности, превосходящие возможности любого суперкомпьютера. Каждый доброволец устанавливает соответствующее программное обеспечение, и его компьютер выполняет вычисления в периоды простоя. Проект был запущен в 1997 г., а к августу 2009 г. было найдено в общей сложности 12 новых простых чисел Мерсенна. Фонд Электронных Рубежей (EFFElectronic Frontier Foundation) предложил приз в 150 тысяч долларов США за нахождение простого числа, состоящего по меньшей мере из 10 миллионов десятичных цифр. 23 августа 2008 г. приз был присужден Эдсону Смиту из Калифорнийского университета за нахождение числа 243112609 — 1.

Логотип Фонда Электронных Рубежей.

* * *

Как определить, является ли число простым

Единственный способ узнать наверняка — это разделить данное число на все предшествующие ему числа. Если оно не делится ни на одно из них, то оно является простым. Как мы видели в предыдущей главе, извлечение квадратного корня из числа может значительно сократить количество работы. Это хороший метод для небольших чисел и вычислений вручную. Например, мы хотим узнать, является ли число 101 простым или составным. Знание правил делимости может помочь нам избежать ненужной работы. Очевидно, что 101 не делится на 2, так как в противном случае его последняя цифра была бы четной или нулем. Не делится оно и на 3, так как сумма его цифр не делится на 3 (1 + 0 + 1 = 2). Также 101 не делится на 5, иначе оно оканчивалось бы на 0 или на 5. Мы также можем отбросить 4, 6 и 9, так как они кратны 2 или 3. Если мы попытаемся разделить 101 на 7, мы получим 14 и остаток 3. Значит, оно не делится и на 7. Следующее число, которое стоит проверить, — 11 (101, очевидно, не делится на 10). Деление на 11 дает 9 и остаток 2. Здесь мы можем остановиться и сказать, что 101 является простым числом, так как квадратный корень из 101 составляет примерно 10. Это означает, что наше число уже не будет делиться на любые другие оставшиеся числа, меньшие 101.

Этот метод называется перебором делителей и является самым простым и самым надежным. Проблема заключается в том, что он не оправдывает себя в случае очень больших чисел, даже если используется компьютер. Заметим, что для числа из 50 цифр потребуется проверка всех чисел длиной до 25 цифр, что более или менее соответствует корню из данного числа. Компьютеру, который способен выполнять миллиард операций деления в секунду, потребуется более 300 млн лет, чтобы закончить проверку, а к тому времени, вполне вероятно, человечество исчезнет с лица Земли!

Во всяком случае, этот метод работает достаточно хорошо для составного числа, если один из его делителей не является слишком большим. Следует иметь в виду, что для любого числа n вероятность того, что число 2 является одним из его делителей, составляет 50 %, а вероятность того, что делителем является число 3, составляет 33 % и так далее.

С другой стороны, скорость и объем памяти современных компьютеров значительно выросли, так что поиск простого числа в длинном списке иногда более эффективен, чем сложный процесс определения, является ли данное число простым.

Псевдопростые числа

В тестах простоты наиболее часто используется малая теорема Ферма. Напомним, что эта теорема гласит: «Если р — простое число, то не существует такого числа а у меньшего р (а и р взаимно просты), что ap-1—1 дает при делении на р отличный от нуля остаток».

Теорема имеет ограничения, поскольку, как мы видели, она дает необходимое, но не достаточное условие. Например, если взять р = 7, мы видим, что З6 — 1 делится на 7. Нет никакой гарантии, что 7 — простое число (мы-то знаем, что это простое число, потому что взяли для примера небольшие числа, но мы должны представить, что имеем дело с большими числами). Однако если взять р = 8, мы видим, что при делении З7 — 1 на 8 получается 273,25, а значит, остаток не ноль. Теперь мы уверены, что 8 — не простое число (не находя его делителей).

Мы знаем точно, что любое число, которое не проходит тест с данным основанием а у является составным.

С другой стороны, если число проходит тест и является простым, мы называем основание «ложным». И продолжаем тестирование. Вероятность обнаружения «ложных» чисел уменьшается на 1/2 с каждым тестом, так что вероятность того, что число является простым, продолжает расти.

Число р, которое, не являясь простым, проходит тест с основанием а, называется псевдопростым для этого основания. Можно дать более общее определение псевдопростого числа: число называется псевдопростым, если оно проходит тест простоты, но оказывается составным.

Дело обстоит сложнее для чисел, которые проходят тесты с любым основанием, но не являются простыми. Например, число 561 проходит тест простоты с любым основанием и все же является составным (561 = 3 х 11 х 17). Такие числа, открытые американским математиком Робертом Кармайклом (1879–1967), называются числами Кармайкла. Сегодня известно 2163 числа Кармайкла, и они находятся среди первых 25 млрд натуральных чисел. Все они имеют по крайней мере три простых делителя.

Существует 16 чисел Кармайкла, меньших 100 000, а именно:

561,1105,1729, 2465, 2821, 6601, 8911,10585,15841, 29341, 41041, 46657, 52633, 62745, 63973, 75361.

Числа Кармайкла также называют абсолютными псевдопростыми числами.

Тесты простоты

Сегодня существует два типа алгоритмов, используемых для определения, является ли число простым: детерминированный полиномиальный и вероятностный полиномиальный.

Первый из них точно устанавливает, является ли число простым, но требует много времени. Второй метод быстрее, но при его применении существует некоторая неопределенность результата.

Наиболее широко используется так называемый «тест Миллера — Рабина», версия теста простоты Ферма, основанная на гипотезе Римана. Это вероятностный полиномиальный алгоритм, но вероятность ошибки составляет от 1/1080 до 1/1050, поэтому на практике он может считаться вполне точным.

6 августа 2002 г. три исследователя из технологического института в Канпуре (Индия), Маниндра Агравал, Нирадж Каял и Нитин Саксена, опубликовали полиномиальный детерминированный тест простоты на основе обобщения малой теоремы Ферма:

Несмотря на это, наиболее часто используемым методом по-прежнему является вероятностный полиномиальный алгоритм — в силу своего быстродействия.

Большинство веб-браузеров включает алгоритм шифрования, который может использовать такой метод для поиска больших простых чисел до 2048 битов.

Сегодня используются три криптографических системы: RSA, DSA (Digital Signature Algorithm, алгоритм цифровой подписи), и ECDSA (Elliptical Curve Digital Signature Algorithm, алгоритм цифровой подписи на эллиптических кривых). Ни один эксперт не сомневается в безопасности, предоставляемой каждой из этих трех систем. Разница между ними заключается в кодах, которые они используют: безопасность, которую обеспечивают 2048-битные коды в первых двух, эквивалентна использованию 224 битов в третьей, при этом время вычислений значительно уменьшается. В то время как в первых двух используются субэкспоненциальные алгоритмы, в третьей применяется экспоненциальный тип, что дает лучшие результаты.

* * *

ДИКОВИННЫЕ ЧИСЛА

Число 313 изображено на номерном знаке автомобиля Дональда Дака. Оно обладает любопытным свойством палиндрома: его можно читать слева направо и справа налево как в десятичной системе счисления, так и в двоичной. Это единственное трехзначное простое число с таким свойством: 313 (в десятичной системе) = 100111001 (в двоичной системе). Кроме того, число 100111001 в десятичной системе счисления является простым.

Существует много простых чисел со странными свойствами. Например, «репьюниты» (от repeated unit — «повторенная единица»), которые состоят из длинных последовательностей единиц. Число 11111111111111111111111 (двадцать три единицы) является простым. В принципе, это просто диковинки, хотя в один прекрасный день эти числа могут стать частью теоремы или гипотезы, имеющей некую ценность в математике. Еще одна любопытная последовательность основана на числе 91, которое является составным (91–13 x 7). Если в середину этого числа вставлять последовательности нулей и девяток, то полученные числа чередуются, являясь то простыми, то составными:

1 ... 17 18 19 20 21 22 23 24 25 26
Перейти на страницу:
На этой странице вы можете бесплатно читать книгу Мир математики. т.3. Простые числа. Долгая дорога к бесконечности - Энрике Грасиан.
Комментарии