Главная » Все файлы » Просмотр файлов из архивов » PDF-файлы » Д. Кнут - Искусство программирования том 2 (3-е издание) - 2001 (Часть 2)

Д. Кнут - Искусство программирования том 2 (3-е издание) - 2001 (Часть 2), страница 12

PDF-файл Д. Кнут - Искусство программирования том 2 (3-е издание) - 2001 (Часть 2), страница 12 Практикум (Прикладное программное обеспечение и системы программирования) (37175): Книга - 4 семестрД. Кнут - Искусство программирования том 2 (3-е издание) - 2001 (Часть 2): Практикум (Прикладное программное обеспечение и системы программирования) 2019-05-09СтудИзба

Описание файла

PDF-файл из архива "Д. Кнут - Искусство программирования том 2 (3-е издание) - 2001 (Часть 2)", который расположен в категории "". Всё это находится в предмете "практикум (прикладное программное обеспечение и системы программирования)" из 4 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

Просмотр PDF-файла онлайн

Текст 12 страницы из PDF

Переменные П, бе', У; $", Р, Р', .4 и 5 представляют В + П„, В. + К, м К 1о-м ра шоб Х, р„-е шод Х, А„и и шос1 2 соответственно. Всегда будет выполняться неравенство О < у < П < В', поэтому самая высокая точность потребуется только для нахождения чисел Р и Р'.) Е2. (Продвинуть П, Ъ~, Я.] Присвоить Т +- 1; Ъ~ +- А(П' — П) + 1', 1'" +- Т, А +- (С7$'], П' <- П, П +- В' — (П шоб Г'), 5 +- 1 — 5. ЕЗ. (Разложить на множители Ц (В соответствии с результатами упр. 4.5.3 — 12(с) здесь имеем Рз — 1Х1Зе = ( — 1)~Г) ПРисвоить (ео„ем...,е„,) +- (Я,О,...,0), Т с- К Теперь нужно выполнитьследующее.

Для 1 < у < т, если Тшодрэ = О, присвоить Т +- Т/р и е +- е + 1 и повторять этот процесс до тех пор, пока не получится Т шое( р„э~ О. Таблица 1 ПРИМЕР ВЫПОЛНЕНИЯ АЛГОРИТМА Е Н = Гвгтав, Ь = 1, тэ = З, р~ = 2, рэ = 3, Рэ = Э Выход Е4. (Решенне?) Если Т = 1, вывести значения (Р, еэ, е„..., е~), которые составляют решение уравненэя (19). (Еслн получено достаточное число решений, то на этом шаге алгоритм может быть завершен.) Еб. (Продвинуть Р, Р'.) Если т' Р 1, присвоить Т т — Р, Р т- (АР+ Р') шот(№ Р' т- Т н возвратиться к шагу Е2. В противном случае процесс разложения в цепную дробь начинает повторять цикл сначала, за возможным нсключеннем л, н поэтому выполненне алгоритма на этом завершается.

(Обычно данный цикл настолько продолжнтелен, что завершенне не происходит.) 1 В качестве примера применения алгоритма Е к сравнительно малым числам рассмотрнм случай, когда Х = 197209, к = 1, гл = 3, рг — — 2, рэ —— 3, рэ = 5. Начальная часть вычислений представлена в табл. 1. Продолжение вычнсленнй прнводнт к получению за первые 100 итераций 25 выходных данных; другими словами, алгоритм находит решения очень быстро, но некоторые нз ннх трпвнальны. Например, если продолжить вычисления еще на 14 шагов, можно получить 197197э ьз 2~ ° Зэ 5о выходных данных, которые не представляют интереса, поскольку 197197 рл — 12.

Для завершения процесса разложения па простые множители достаточно первых двух решений, полученных выше. Так как получено (159316 133218)т рл (2э. Зз 5')э (по модулю 197209), соотношение (18) выполняется прн х = (159316 133218)шо6197209 = 126308, д = 540. В соответствии с алгоритмом Евклида всб(126308 — 540, 197209) = 199, н получаем изящное разложение 197209 = 199 991. Чтобы понять прнчнны, по которым элгорнтм Е столь успешно выполняет разложение больших чисел на простые множнтелн, рассмотрим эврнстнческнй аналнз времени выполнения алгоритма Е, следуя неопублнкованной идте, высказанной После Е1: После Е4: После Е4: После Е4: После Е4: После Е4: После Е4: После Е4: После Е4: После Е4: После Е4: После Е4: После Е4: П 1' А 888 1 О 876 73 12 882 145 6 857 37 23 751 720 1 852 143 5 681 215 З 863 656 1 ВВЗ ЗЗ 26 В21 136 б 877 405 2 875 24 36 490 477 1 Р 9 444 О 444 1 5З29 О 32418 1 159316 0 191 734 1 1З1 941 О 193 1ЗО 127871 0 165 232 1 1ЗЗ 218 О 37250 1 93 755 О 73 29 З7 1 159316~ рл+2~ 3 ° 51 143 43 41 11 17 1 133 218~ рл +2 З~ 51 1 37250э и -2э 31 5э 53 автору в 1975 году Р.

Шруппелем (!1. 8сйгоерре!). Положим для определенности, что й = 1. Число выходных данных, необходимых для получения разложения числа Л' на простые множители, пропорционально т — числу выделенных в процессе вычислений малых простых чисел, Каждый раз на выполнение шага ЕЗ затрачивается порядка тп !о8Л' единиц времени, так что общее время выполнения в первом приближении пропорционально величине газ !о8Л!(Р, где Р— вероятность получения очередного результата на каждой итерации.

Предположим, что в течение всего времени выполнения алгоритма величина $' равномерно распределена в интервале от 0 до 2~/У. Тогда вероятность Р равна значению (2~/Х) ', умноженному иа количество целых чисел < 2ъ~Ф, для которых все простые множители принадлежат множеству (р~,...,р ). В упр. 29 приведена нижняя граница для Р, из которой можно заключить, что наибольшее время выполнения алгоритма имеет порядок 2~/Ютз)о8Х ! !о82~Х гдег= ~ гл г/г! )о8 ь ° *.

ь ~ ° ~.ь °, !,~БЗьью, ~щ р = а( ~ ), ~.,IБх7БЪю — ~, д* ° ф р у (ь) упрощается и принимает вид р(иДи7ьЬЮТ.~ оф~м)'~'~~~ р) '"О~Мьахф. Следовательно, при надлежащих прелположеннях ожидаемое время выполнения к р * х < "~, ° ~,ч ~ 'ьБЗ71' х стремится к 0 при Х -+ со. Когда число Л' находится в интервале, чаще всего используемом на практике, нужно быть осторожным и не принимать всерьез такую асимптотическую оценку. Например, если Л! = 10~с, получим Л'т~" = ()8Х)" при о 4.75, ио то же самое соотношение справедливо и для о а 8.42, когда Х = 10юе. Функция Хцм! имеет порядок роста, который представляет собой некоторого рода пересечение Лмз и (!8 Л'), но все три равенства практически одинаковы для чисел Л', не являющихся недопустимо большими.

Многочисленные вычислительные эксперименты, выполненные М. Ч. Вундерлихом (М. С. %цпбег!!сп), показали, что хорошо настроенный вариант алгоритма Е значительно лучше выполняет разложение, чем предусматривается этой оценкой [см, Ъес!иге Хо!ее (и Май. 751 (1979), 328-342); несмотря на * д к=в" ьГЯ7~~и .а, р р . р * множители тысяч чисел в интервале 10'з < Л' < 10эз он получил выражение для времени выполнения, равное приблизительно Л~'~. Попытка выполнить разложение числа Л с помощью алгоритма Е начинается. по существу, с замены Х на йЛ, что выглядит довольно любопытно (если не откровенно глупо).

"Простите, как вы смотрите на то, что перед попыткой разложения числа я умножу его на 37' Тем не менее идея выглядит привлекательной, поскольку некоторые значения /с делают числа 1' потенциально делимыми на меньшие простые числа, и поэтому на шаге ЕЗ полное разложение этих чисел на простые множители может быть выполнено проще. С другой стороны, большое значение числа х сделает числа 1' больше, и тогда их полное разложение на простые множители будет затруднено. Нужно сбалансировать эти тенденции путем соответствующего подбора числа lс.

Рассмотрим, например, делимость чисел 1: на числа, равные степеням 5. На шаге ЕЗ получаем Рэ — !гХ!'„!~ = ( — 1)э1', так что, если 5 делит г, имеем Рэ ш АА (~э (по модулю 5), В данном соответствии число Я не может быть кратным 5, поэтому оно взаимно просто с Р и можно записать (РЯ)э = АХ (по модулю 5). Если предположить, что Р и Я-- случайные взаимно простые числа, такие, что 24 возможные пары чисел (Р щи 5, Я шоб 5) З! (О, 0) равновероятны, вероятность того, что 5 делит 1'.

равна,, таким образом,,~4, зээ, О, О или,ээ в зависимости от того, какие значения принимает число кХ шоб 5: О, 1, 2, 3 или 4. Аналогично вероятность того, что 25 делит г', равна О, ф, О, О, ф соответственно, если только ЙЛ' не кратно 25. В общем случае для данного нечетного простого числа р, для которого (кХ)!" 'Уэ шобр = 1, получаем, что г' кратно р' с вероятностью 2/(р' '(р+ 1)); среднее число р делителей числа Ъ' приближается к 2р/(рэ — 1). Из этого анализа, выполненного Р. 1Пруппелем (К. Яспгоерре!), следует, что лучший выбор числа й— это значение, которое обеспечивает максимум функпии м 1 'Е. '/(р„ю !Ой р3 - - !Оа й, тки где / определена в упр.

28, поскольку, по существу, это ожидаемое значение величины !и(, /Х(Т) при переходе к шагу Е4. Если числа к и гп хорошо подобраны, выполнение разложения по алгоритму Е дает еще лучшие результаты. Выбор подходящего числа гп может быть выполнен экспериментально, так как проведенный выше анализ асимптотического поведения носит незавершенный характер и нельзя быть уверенным в точности полученной информации. Поэтому внесение в алгоритм многочисленных уточнений, связанных с таким выбором гп, может привести к непредсказуемым последствиям.

Например, сравнив выполнение шага ЕЗ с выполнением алгоритма А, можно получить следующее важное усовершенствование. Суть его в том, что процесс разложения иа простые множители можно остановить после нахождения Т щи рз ф 0 и (Т/р!) < рэ, поскольку в этом случае Т будет либо равно 1, либо простым числом. Если Т вЂ” простое число, большее р„, (в таком случае оно будет не больше р~ +р,„— 1), то, учитывая, что получено полное разложение на простые множители, можно вывести в качестве результата (Р, ее,..., е„„Т). На второй фазе алгоритма будут использованы только те выходные данные, для которых все простые числа Т встретятся ие менее двух раз. Эта модификация приводит к образованию намного большего списка простых чисел без дополнительных затрат времени.

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