Главная страница


ru.algorithms

 
 - RU.ALGORITHMS ----------------------------------------------------------------
 From : Ilia Kantor                          2:5020/1815.6  20 Oct 2001  22:32:38
 To : Victor Anikeev
 Subject : Огpомные числа
 -------------------------------------------------------------------------------- 
 
  VA>   Тогда я вопpос по-дpyгомy поставлю. Как вообще pаботают пpогpаммы,
  VA>  котоpые отыскивают пpостые числа? Дело в том, что я хочy сделать
  VA>  пpогpаммy-бpелок, типа подаpка - пyсть сидит в тpее и все вpемя
  VA> отыскивает пpостые числа и записывает их в текстовый файл
 
 аиболее эффективным средством построения простых чисел является несколько
 модифицированная малая теорема Ферма.
 
 Пусть N, S --- нечётные натуральные числа, N-1 = S*R, причем для каждого
 простого делителя q числа S существует целое число a такое, что
 
 aN-1=1(mod N), ОД( a(N-1)/q-1, N ) = 1
 Тогда каждый простой делитель p числа N удовлетворяет сравнению p = 1(mod 2S)
 
 Следствие.
 
 Если выполнены условия теоремы Ферма и R <= 4S+2, то N --- простое число.
 
 Покажем теперь, как с помощью последнего утверждения, имея большое простое число
 S, можно построить существенно большее простое число N. Выберем для этого
 случайным образом чётное число R на промежутке R <= 4S+2 и положим N=SR+1. Затем
 проверим число N на отсутствие малых простых делителей, разделив его на малые
 простые числа; испытаем N некоторое количество раз с помощью алгоритма Рабина.
 Если при этом выяснится, что N --- составное число, следует выбрать новое
 значение R и опять повторить вычисления. Так следует делать до тех пор, пока не 
 будет найдено число N, выдержавшее испытания алгоритмом Рабина достаточно много 
 раз. В этом случае появляется надежда на то, что N --- простое число, и следует 
 попытаться доказать простоту с помощью тестов теоремы 2.
 
 Для этого можно случайным образом выбирать число a, 1 < a < N, и проверять для
 него выполнимость соотношений aN-1=1(mod N), ОД(aR-1, N)=1.
 
 Если при выбранном a эти соотношения выполняются, то, согласно следствию из
 теоремы Ферма, можно утверждать, что число N простое. Если же эти условия
 нарушаются, нужно выбрать другое значение a и повторять эти операции до тех пор,
 пока такое число не будет обнаружено.
 
 Предположим, что построенное число N действительно является простым. Зададимся
 вопросом, сколь долго придётся перебирать числа a, пока не будет найдено такое, 
 для которого будут выполнены условия (12). Заметим, что для простого числа N
 первое условие (12), согласно малой теореме Ферма, будет выполняться всегда. Те 
 же числа a, для которых нарушается второе условие (12), удовлетворяют сравнению 
 aR=1(mod N). Как известно, уравнение xR=1 в поле вычетов Fn имеет не более R
 решений. Одно из них x=1. Поэтому на промежутке 1 < a < N имеется не более R-1
 чисел, для которых не выполняются условия (12).
 
 Это означает, что, выбирая случайным образом числа a на промежутке 1 < a < N,
 при простом N можно с вероятностью большей, чем 1-O(S-1), найти число a, для
 которого будут выполнены условия теоремы Ферма, и тем доказать, что N
 действительно является простым числом.
 
 Заметим, что построенное таким способом простое число N будет удовлетворять
 неравенству N>S2, т.е. будет записываться вдвое большим количеством цифр, чем
 исходное простое число S. Заменив теперь число S на найденное простое число N и 
 повторив с этим новым S все указанные выше действия, можно построить ещё большее
 простое число. ачав с какого-нибудь простого числа, скажем, записанного 10
 десятичными цифрами (простоту его можно проверить, например, делением на
 маленькие табличные простые числа), и повторив указанную процедуру достаточное
 число раз, можно построить простые числа нужной величины.
 
 Обсудим теперь некоторые теоретические вопросы, возникающие в связи с
 нахождением числа R, удовлетворяющего неравенствам S <= R <= 4S+2, и такого, что
 N=SR+1 -- простое число. Прежде всего, согласно теореме Дирихле, доказанной ещё 
 в 1839г., прогрессия 2Sn+1, n=1,2,3,... содержит бесконечное количество простых 
 чисел. ас интересуют простые числа, лежащие недалеко от начала прогрессии.
 Оценка наименьшего простого числа в арифметической прогрессии была получена в
 1944г. Ю.В.Линником. Соответствующая теорема утверждает, что наименьшее простое 
 число в арифметической прогрессии 2Sn+1 не превосходит SC, где C -- некоторая
 достаточно большая абсолютная постоянная. В предположении справедливости
 расширенной гипотезы Римана можно доказать, что наименьшее такое простое число
 не превосходит c(e)*S2+e при любом положительном e.
 
 Таким образом, в настоящее время никаких теоретических гарантий для
 существования простого числа N=SR+1, S < R < 4S+2 не существует. Тем не менее
 опыт вычислений на ЭВМ показывает, что простые числа в арифметической прогрессии
 встречаются достаточно близко к её началу. Упомянем в этой связи гипотезу о
 существовании бесконечного количества простых чисел q с условием, что число 2q+1
 также простое, т.е. простым является уже первый член прогрессии.
 
 Очень важен в связи с описываемым методом построения простых чисел также вопрос 
 о расстоянии между соседними простыми числами в арифметической прогрессии. Ведь 
 убедившись, что при некотором R число N=SR+1 составное, можно следующее значение
 R взять равным R+2 и действовать так далее, пока не будет найдено простое число 
 N.
 
 И если расстояние между соседними простыми числами в прогрессии велико, нет
 надежды быстро построить нужное число N. Перебор чисел R до того момента, как мы
 наткнемся на простое число N окажется слишком долгим. В более простом вопросе о 
 расстоянии между соседними простыми числами pn и pn+1 в натуральном ряде
 доказано лишь, что pn+1-pn=O(pn38/61+e), что, конечно, не очень хорошо для наших
 целей. Вместе с тем существует так называемая гипотеза Крамера (1936г.), что
 pn+1-pn=O(ln2pn), дающая вполне приемлемую оценку. Примерно такой же результат
 следует и из расширенной гипотезы Римана. Вычисления на ЭВМ показывают, что
 простые числа в арифметических прогрессиях расположены достаточно плотно.
 
 В качестве итога обсуждения в этом пункте подчеркнём следующее: если принять на 
 веру, что наименьшее простое число, а также расстояние между соседними простыми 
 числами в прогрессии 2Sn+1 при S <= n <= 4S+2 оцениваются величиной O(ln2S), то 
 описанная схема построения больших простых чисел имеет полиномиальную оценку
 сложности. Кроме того, несмотря на отсутствие теоретических оценок времени
 работы алгоритмов, отыскивающих простые числа в арифметических прогрессиях со
 сравнительно большой разностью, на практике эти алгоритмы работают вполне
 удовлетворительно. а обычном персональном компьютере без особых затрат времени
 строятся таким способом простые числа порядка 10300.
 
 Конечно, способ конструирования простых чисел для использования в схеме RSA
 должен быть массовым, а сами простые числа должны быть в каком-то смысле хорошо 
 распределёнными. Это вносит ряд дополнительных осложнений в работу алгоритмов.
 Впрочем, описанная схема допускает массу вариаций.
 
 аконец, отметим, что существуют методы построения больших простых чисел,
 использующие не только простые делители N-1, но и делители чисел N+1, N2+1, N2
 +- N+1 $. В основе их лежит использование последовательностей целых чисел,
 удовлетворяющих линейным рекуррентным уравнениям различных порядков. Отметим,
 что последовательность an, члены которой присутствуют в формулировке малой
 теоремы Ферма, составляет решение рекуррентного уравнения первого порядка
 un+1=aun, u0=1.
 
 -----------------------------
 
             Закрой за мной дверь, я ухожу.. [Team Кино]
 --- GoldEd 3.00.Alpha4+
  * Origin: http://algolist.da.ru - Мир Алгоритмов (2:5020/1815.6)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Огpомные числа   Victor Anikeev   20 Oct 2001 01:41:30 
 Re: Огpомные числа   Sergey Kovalev   19 Oct 2001 19:40:09 
 Огpомные числа   Stanislav Shwartsman   19 Oct 2001 18:35:21 
 Re: Огpомные числа   Sergey Kovalev   19 Oct 2001 23:39:47 
 Огpомные числа   Stanislav Shwartsman   19 Oct 2001 22:59:08 
 Огромные числа   Max Alekseyev   19 Oct 2001 15:03:12 
 Re: Огромные числа   Sergey Kovalev   20 Oct 2001 09:21:50 
 Re: Огромные числа   Sergey Kovalev   20 Oct 2001 09:34:03 
 Огромные числа   Dovlet Tatlok   20 Oct 2001 11:30:53 
 Огpомные числа   Andrew Plyako   21 Oct 2001 01:00:10 
 Re: Огpомные числа   Zapadinsky Anatoly \\(ZAB\\)   19 Oct 2001 22:00:03 
 Огpомные числа   Victor Anikeev   20 Oct 2001 10:06:56 
 Огpомные числа   Stanislav Shwartsman   20 Oct 2001 10:04:24 
 Огpомные числа   Victor Anikeev   20 Oct 2001 22:13:36 
 Огpомные числа   Stanislav Shwartsman   20 Oct 2001 14:20:12 
 Огpомные числа   Ilia Kantor   20 Oct 2001 22:32:38 
 Пpизнаки делимости   Ilia Kantor   21 Oct 2001 00:28:00 
 Делимость на 7 Re: Огpомные числа   Sergei Zubkov   20 Oct 2001 23:40:57 
Архивное /ru.algorithms/39463bd1fbe5.html, оценка 3 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional