AOP_Tom2 (1021737), страница 116

Файл №1021737 AOP_Tom2 (Полезная книжка в трёх томах) 116 страницаAOP_Tom2 (1021737) страница 1162017-07-10СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 116)

Е(а), С(6) = .01 .05 .10 .20 .35 .50 .65 .80 .90 .95 .99 а = .2697 .3348 .3785 .4430 .5220 .6065 7047 .8187 .9048 .9512 .9900 6 = .0056 .0273 .0531 .1003 .1611 .2117 .2582 .3104 .3590 .3967 .4517 Таким образом, примерно в половине случаев второй по величине простой множитель будет < х тмт и т. д. Можно проанализировать также величину ! — общего числа простых множителей. Обычно 1 < ! < 18 М, но эти нижние и верхние границы достигаются редко. Можно доказать, что если А! выбирается как случайное число в интервале межлу 1 1.0 ол Второй во в 0.6 0.4 0.2 0.0 о .е е е е е .е .е .е .о Рис.

12. Функция распределения вероятностей для двух наибольших простых множителей случайного целого числа < х. и х, то вероятность того, что 1 < !и 1п х + ссlГп !их при х -4 оо, стремится к — е "/ии е/2т /- (8) для любых фиксированных с.

Другими словами, распределение величины г является, по существу, нормальным со средним значением и дисперсией, равными 1п1пх; примерно для 99.73% всех больших чисел < х выполняется ~1 — !и 1и х) < ЗДп!их. Далее, известно, что среднее значение для 1 — !п1пх при 1 < Х < х достигает величины 7+ Е (!п(1 — 1/р) + 1/(р 1)) = 7+ Е !о(п) !и Дп) р простое в>т = 1.03465 38818 97437 9116197942 9846463825 46703+. (9) (См. О. Н, Нате(у, Е. М. Ъг!8Ьг, Ап 1пггог!исбоп 10 гЛе ТЬеогу о/ХитЬегв, 51Ь еб!1!оп (Ох$огб, 1979), 322.11; см. также Р. Егббз, М. Кас, Ашег.

Х МагЛ. 26 (1940), 738-742.) Размер простых множителей имеет примечательную связь с перестановками. Среднее число битов в Л-и наибольшем простои множителе случайного и-битового числа при и -4 оо асимптотически стремится к средней длине Л-го наибольшего цикла перестановок случайного и-элемента. [См. Р. Е. Кпи1Ь апе! 1,. ТгаЬЬ Раге!о, ТЬеогег!са! Сотр.

Ясй 3 (1976), 321 — 348; А. М. Вершик, Бои'е1 Ма!Ь. Рой!ае!у 34 (1987), 57-6Ц Отсюда следует, что алгоритм А сначала находит несколько малых множителей, а затем начинает долгий поиск остальных ббльших множителей. Прекрасное описание распределения вероятностей простых множителей для случайных целых чисел приведено в статье Патрика Биллингслея (Рагйс!г В!!!!п8з!еу), опубликованной в журнале АММ 80 (1973), 1099-1115 (см, также его статью в АппаЬ оГРгоЬаЬ!!Ву 2 (1974), 749 — 791). Разложение на простые множители с использованием псевдослучайных циклов.

В начале главы 3 указывалось, что выбранный генератор случайных чисел дает числа, которые оказываются не совсем случайными. Этот тезис, работавший в той главе против нас, здесь оборачивается благом н ведет к поразительно эффективному методу разложения на простые множители, открытому Дж. М. Поллардом (3. М. Ро!)аге!) (В1Т 15 (1975), 331 — 334).

Число шагов вычислений в методе Полларда имеет порядок ~Гр, м поэтому при больших Х он значительно быстрее алгоритма А. Как следует из уравнения (7) и рис. 12, время выполнения алгоритма, реализующего метод Полларда, обычно меньше, чем К~1~. Пусть /(х) — нилином с целочисленными коэффициентами. Рассмотрим две последовательности хо = уо — — А; х„,+1 — — /(х„) шод Х, у„,~1 — — /(у,„) шодр, (10) где р — любой простой множитель числа Х. Тогда у = х шобр при т > 1. Из упр. 3.1-7 видно, что для некоторого т>1 выполняется равенство у = уц где 4(т) — наибольшая степень 2, не превышающая т. Таким образом, разность х„, — хц„,1 1 будет кратна р.

Далее, если /(у) шодр ведет себя как случайное отображение множества (О, 1, ..., р -1) на самое себя, то, как показано в упр. 3.1 — 12, среднее значение наименьших из таких т будет порядка ~/р. Фактически это среднее значение для случайных выборок меньше 1.625 Я(р), как показано в упр. 4 ниже; функция Я(р) в и/пр/2 была определена в разделе 1.2,11,3. Если различные простые делители числа Х соответствуют различным значениям т (что для больших Х почти всегда верно), их можно найти, вычисляя аса(х„— хц 1 м Х) для т = 1, 2, 3, ... до тех пор, пока остаток от деления на множитель не станет простым.

Поллард назвал этот метод ро-методом, так как периодическая последовательность аида уо, ум ... напоминает греческую букву р. Из главы 3 известно, что линейный полинам /(х) = ах+с не обеспечивает достаточной случайности последовательростн. Следующим простейшим видом палииома является квадратичный полинам /(х) = хз + 1. Нам неизвестно., обеспечивает ли данная функция случайность, но недостаток знаний по этому вопросу склоняет нас, скорее всего, в пользу гипотезы о том, что функция обеспечивает достаточную случайность, а эмпирическая проверка показала, что она ведет себя так, как и предполагалось. В действительности же функция /, вероятно, даже дает немного больше, чем случайность, так как хз + 1 содержит только -'(р + 1) различных значений по модулю р (см. Агпеу, Вепдег, Расйбс Х Магй. 103 (1982), 269 — 294).

В связи со сказанным уместна следующая процедура. Алгоритм В (Разложение на простые множители при помощи ро-метода). Этот алгоритм с высокой вероятностью вычисляет простые множители данного целого числа Х > 2, хотя не исключен и отрицательный результат (т. е. множитель найден не будет. —. Прим.

перев.). В1. (Начальная установка.] Присвоить х < — 5, х' +- 2, 1' < — 1, 1 < — 1, и < — Х. (Во время выполнения этого алгоритма число и не является множителем числа Х, а пеРеменные х и х' пРедставлиют величины х шод и и хдп0 ~ пюа и в выражении (10), где также /(х) = хз + 1, А = 2, 1 = 4(т) и lс = 21 — т.) В2. (Проверить, будет ли число простым.] Если и — простое число (рассматривается ниже), вывести и в качестве результата; на этом выполнение алгоритма завершается. ВЗ. [Множитель найден7) Присвоить д +- боб(х' — х, и). Если д = 1, то перейти к шагу В4; в противном случае вывести д.

Теперь, если д = и, алгоритм завершается (его выполнение прерывается, ибо нам известно, что и не является простым числом). В противном случае присвоить и ь- и/д, х 4 — х люби, х' 4 — х' шайи и возвратиться к шагу В2. 13аметим, что д может и не быть простым числом— это подлежит проверке. В каждом случае, когда д — не простое число, его простые множители не могут быть определены при помощи этого алгоритма.) В4. 1Продвинуться.] Присвоить /с ~- 5 — 1. Если й = О, то присвоить х' 4 — х, 1 ь- 21, 5 4 — Б Присвоить х 4- (хз + 1) шос1 и н возвратиться к шагу ВЗ.

$ В качестве примера алгоритма В попробуем снова разложить на простые множители число Гч' = 25 852. В результате третьей итерации шага ВЗ будет получен следующий результат: д = 4 (не является простым). Еще после шести итераций алгоритм находит множитель д = 23. В этом примере алгоритм не различил сам себя, но он, конечно же, был разработан для поиска больших простых множителей.

Алгоритм А на поиск бальших простых множителей затрачивает гораздо больше времени, но в том, что касается определения малых простых множителей, к нему нет никаких претензий. На практике сначала некоторое время выполняется алгоритм А, а затем запускается алгоритм В. Рассмотрев десять наибольших простых шестиразрядных чисел, можно получить лучший способ использования алгоритма В. Количество итераций т(р), требуемое алгоритму В для нахождения множители р, приведено в следующей таблице. р = 999863 999883 999907 999917 999931 999953 999959 999 961 999979 999983 т(р) = 276 409 2106 1561 1593 1091 474 1819 395 814 Экспериментальным путем установлено, что среднее значение т(р) примерно равно 2~/р и никогда не превышает 12~/р, когда р < 1 000000. При р < 10 максимум т(р) равен т(874 771) = 7685.

Максимум функции т(р)/ /р достигается при р = 290047 и т(р) = 6251. На основании этих результатов почти все 12-разрядные числа можно разложять на простые множители быстрее чем за 2 ООО итераций алгоритма В (сравните с 75 000 операций деления, требуемых для выполнения алгоритма А).

Время на каждой итерации алгоритма В, в основном, затрачивается на выполнение умножения и деления с многократной точностью на шаге В4 и на вычисление наибольшего общего делителя на шаге ВЗ. Выполнение этих операций может быть ускорена за счет применения методики "умножения Монтгомери" (см. упр. 4.3.1-41). Более того, в случае, когда операция нахождения наибольшего общего делителя выполняется медленно, Поллард предложил ускорить процесс путем накапливания произведения по модулю и, скажем, десяти последовательных значений (х' — х) перед тем, как искать наибольший общий делитель. Таким образом, 90% операций нахождения наибольшего общего делителя заменяется одним умножением по модулю Х ценой некоторога увеличения вероятности того, что решение при этом не будет найдено.

Поллард также предложил начинать вычисления на шаге В1 с т = д, а не с т = 1, где д равно одной десятой от количества итераций, которые планируется реализовать. В тех редких случаях, когда для больших Х результат не был найден, можно применить функцию /1х) = х~ + с при некотором с 74 0 или 1. следует избегать также значения с = -2, поскольку рекуррентное уравнение х „, = х„, — 2 имеет 2 решение в виде х,„= тз + т ' . Похоже, чта другие значения параметра с не приводят к возникновению простых связей по модулю р и все они должны быть удовлетворительными при подходящих начальных значениях. Ричард Брент применил эту модификацию алгоритма В для нахождения простого множителя 1238926361552897 числа 2зав + 1. [См. Май.

Сошр. 36 (1981), 627 — 630; 38 (1982), 253-255.] Метод Ферма. Другой подход к решению проблемы разложения чисел на простыв множители, который в 1643 году предложил Пьер де Ферма (Р1егге г1е Реппа1), более подходит для поиска больших множителей, нежели малых. [Описание метода, данное самим Ферма и переведенное на английский язык, можно найти в книге Л. Е. Диксона (Ь.

Е. 01саэоп) НЫгогу оГ сйе Тйеогу оГХшпбегэ 1 (Сагпе81е 1пэц о1 Ъавп1пйсоп, 1919), 357.) Допустим, что Х = ие, где и < е. Для практических целей можно положить, что Х вЂ” нечетное число. Это означает, что и и е тоже нечетны. Можно также положить, что х = (и+ е)/2, у = (е — и)/2, (12) Х=х~ — у, 0<у<х<Х. (13) Суть метода Ферма заключается в том, что ишу тся такие значения х и у, которые удовлетворяют уравнению (13). В следующем алгоритме показано, как таким путем можно разложить число на простые множители, не выполняя операций деления. Алгоритм С (Рпзлоэтсение на просшме множители при помощи операций слолсения и вычитания).

По данному нечетному числу Х этот алгоритм определяет наибольший множитель числа Х, меньший или равный етХ. С1. [Начальная установка.) Присвоить х +- 2[~/Х! + 1, у е — 1, т е- [его)з — Х. (Во время выполнения этого алгоритма величины х, у, т отвечают соответственно величинам 2х+ 1, 2у+ 1, хэ — ут — Х в уравнении (13). Должно соблюдаться условие [т[ < х и у < х.) С2. [Выпалнено7[ Если т = О, то выполнение алгоритма завершается.

Характеристики

Тип файла
DJVU-файл
Размер
9,89 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6461
Авторов
на СтудИзбе
304
Средний доход
с одного платного файла
Обучение Подробнее