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

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

Файл №1119452 Д. Кнут - Искусство программирования том 2 (3-е издание) - 2001 (Часть 1) (Д. Кнут - Искусство программирования том 2 (3-е издание) - 2001 (Часть 1)) 11 страницаД. Кнут - Искусство программирования том 2 (3-е издание) - 2001 (Часть 1) (1119452) страница 112019-05-09СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Чинейиые конгруэнтные последовательности должны пройти 'спектральный тест", обсуждаемый в разделе 3.3.4, прежде чем они будут признаны случайными. УПРАЖНЕНИЯ 1. )М10) Покажите, что везависимо ог размера байта В компьютера ИХХ программа (3) генерирует последовательность случайных чисел с максимальным периодом. 2. (10) Чему равен потенциал генератора, предложенного в программе (3) для компьютера ЯХХ? 3.

(11) Чему равен потенциал линейной конгруэнтной последовательности, когда гл = 2зз и а = 3141592621? Чему равен потенциал, если множитель равен а = 2зз + 2'з + 2 + 1? 4. (15) Покажите, что если пз = 2' > 8, то максимум потенциала достигаетгя прй 0 П!06 8 = 5. 5. (М20) Дана, что вз = р",'...р" ,и а = 1+ /ер~'... р1', где а удовлетворяет условиям теоремы 3.2.1.2А и /е и вз — взаимно простые числа.

Покажите, что потенциал равен т ((ез/Ы,...,(е //з)). ° 6. (20) Какие значения гл ж ш ш1 из табл. 3.2.1.1-1 могут быть использованы в линейной конгруэнтной последовательности с максимальным периодом, чтобы ее потенциал был равен 4 или выше? (Воспользуйтесь резучьтатам упр. 5.) ?. (МЗд] 'Когда а удовлетворяет условиям теоремы 3.2.1.2А, оио взаимно просто с пз; поэтому существует число а, такое, что аа ге 1 (по модулю пз).

Покажите, что «~ может быть просто записано в терминах Ь. 8. (М96) Генератор случайных чисел, определенный как Л зз = (2'"+3)Х~ щод2 и Хо = 1, был протестировал следующим образом: пусть У„= )10Л„/2~~1; тогда У„далжеи быть случайной цифрой между 0 н 9 н тройка цифр (Уз», Уз~.зм Уз ч.з) доззкпа принимать каждое из 1 000 возможных значений ат (О, О, О) ло (9, 9, 9) с приблизительно равными частотами. Но после того как было проверено 30 ООО значений, оказалось, что одни тройки встречзлиеь крайне редко„а другие — чаще, чем должны были бы. Можно ли объяснить такай неудачный результат испытаний? 3,2.2, Другие методы Конечно, линейные конгрузнтные последовательности — это не единственный источник случайных чисел, который предлагается для использования на компьютере.

В этом разделе будет приведен обзор наиболее сушественных альтернативных методов. Одни нз них действительно важны, тогда как другие интересны главным образом потому, что они не так хороши, как хотелось бы. В связи с получением случайных чисел возникает такая обшепринятая ошибочная идея — достаточно взять хороший генератор случайных чисел н немного его модифицировать для того, чтобы получить "еще более случайную" последовательность.

Часто это не так. Например, известно, что формула Х„+1 = (ах„+ с) шгк( т позволяет получить более или менее хорошие случайные числа. Может ли последовательность, полученная из Х„+1 — — ((аХ„) шск1 (т + Ц + с) шо4 т, (2) быть еще более случайной? Ответ: новая последовательность является менее случайной с большой долей вероятности. Такпм образом, идея потерпела неудачу и при отсутствии какой-нибудь теории о поведении последовательности (2) мы попадаем в область генераторов типа Х„з.1 = У(Х„) с выбранной наудачу функцией /.

В упр. 3.1-11, 3.1-15 показано, что зти последовательности, вероятно, ведут себя намного хуже, чем поюедовательности, полученные при использовании более регулярных функций (1). Давайте рассмотрим другой подход к попытке пазучить подлинно улучшенный вариант последовательности (1). Линейный конгрузнтный метод может быть обобшен, скажем, в квадратичный конгрузнтный меток: Х„+1 = (НХт + аЛ „+ с) шос) т.

В упр. 8 обобщена теорема 3.2.1.2А, чтобы получить необходимые и достаточные условия для а, с и а, такие, чтобы последовательность, определенная соотношением (3), имела период максимальной длины т. В этом случае ограничения не более жесткие, чем в линейном методе, Для т, которое является степенью 2, интересный квадратичный метод предложил Р. Р. Ковэю (В. В.. Сотеуоц).

Пусть Хогаоб4= 2, Х„з.т =Х„(Х„+1) шод2', п > О. (4) Данная последовательность может быть вычислена приблизительно с той же эффективностью„что и (1), без любых беспокойств по поводу переполнения. Этот метод имеет интересную связь с подлинным методом средин квадратов фон Неймана (топ Хецшапп). Если положить г'„равным 2'Л„, так что У„является числом двойной точности, полученным в результате размещения справа е нулей у двоичного представления числа Х„, то 1'„з.1 точно совпадет со средними 2е цифрами 1'„з+ 2'1„) Другими словами, метод Ковэю в некоторой степени почти идентичен вырожденному методу средин квадратов двойной точности, однако ан гарантирует получение длинного периода. Дополнительное свидетельство его случайности приведено в статье Ковэю, цитируемой в ответе к упр. 3. Другие обобщения выражения (1) также очевидны.

Например, можно попытаться увеличить длину периода последовательности. Период линейной конгруэнтной последовательности довольно длинный; когда па приблизительно равно длине слова компьютера, обычно получаются периоды порядка 10» или больше и в типичных вычислениях используется лишь маленькая часть последовательности. С другой стороны, при рассмотрении идеи "'точности" в разделе 3.3.4 получается, что длина периода влияет на степень случайности последовательности.

Значит, желательно получить длинный период и существует несколько подходящих для этого методов. Один из них состоит в том, чтобы сделать Х„+а зависящим от Х„и Л„ы а не только от Х„. Тогда длина периода сможет достичь значения па~, твк как последовательность не станет повторяться, пока не будет получено равенство (Х„+ю Х„.ах+а) = (Х„, Х„+1). Джон Мочли (ЛоЬп МаисЫу) в неопубликованной работе, представленной на статистической конференции в 1949 году, расширил метод средин квадратов с помощью рекуррентного соотношения Л„= середина(Х„-а Хя-»).

Простейшая последовательность, в которой Х„а.г зависит более чем от одного из предылущих значений, -- это последовательность чисел Фибоначчи (5) Х» ы — — (Х„+ Х„а) пюб па. Данный генератор рассматривался в начале 50-х годов, и обычно он дает длину периода, ббльшую, чем щ. Но тесты показывают, что числа, получаемые с помощью рекуррентного соотношения Фибоначчи, безусловно, иедостатиочно случайны, и, таким образом, выражение (5) нас, главным образом, интересует, как элегантный "плохой пример" источника случайных чисел. Можно также рассматривать генераторы вида (б) Ха ы = (Х„+ Х„») щоб па, когда й — сравнительно большое число. Это рекуррентное сооуношение было введено Грином.

Смитом и Клем (Огееп, Бш1»Ь, апб К)егп (У4СМ 8 (1959), 527-537)), сообщившими, что, когда Й < И, тестирование последовательности с ибибдьзовйиием критерия "интервалов", описанного в разделе 3.3.2, дала отрицательный результат, хотя при к = 10 результат был положительным. Намного лучший аддитивньай генератор был изобретен Дж. Ж. Митчелом (С. 3. М1гсЬеИ) и Д. Ф. Муром (П.

Р. Мооге) в 1958 году (не опубликовано), Они предложили несколько необычную последовательность, определенную так: (7) = (Х -»а+ Х»») щодт и > 55 где щ — четное число, а Л»,...,Л»а — произвольные целые не все четные числа. Числа 24 и 55 в данном определении не были выбраны наудачу; зти специальные числа выбраны, оказывается, для того, чтобы определить такую последовательность, младшие значащие двоичные разряды (Х„щоб 2) которой имеют длину периода 2ы — 1. Очевидно, последовательность (Х„) должна иметь период по крайней мере такой же длины. В упр. 30 доказывается, что длина периода последовательности, определенной в выражении (7), точно равна 2' '(2'» — 1), когда пг ы 2'.

На первый взгляд, рекуррентное соотношение (7) кажется не очень удобным для реализации на компьютере, но на самом деле существует эффективный путь генерирования этой последовательности с помощью циклической таблицы. Алгоритм А (Аддигпивнмб генератор чисел). В ячейки памяти У[1], У[2], ..., У[55] записано множество значений Лы, Лаз, ..., Ла соответственно; » вначале равно 24, а»г равно 55. При реализации этого алгоритма на выходе последовательно получаем числа Лы, Лвв,.... А1. [Суммирование.] (Если на выходе мы оказываемся в точке Л"„, то У[у] равно Х„ы, а У[х] равно Л„ы,) Запишем У[)»] +- (У[Ц+ У[Я) шо»12', тогда на выходе получим У[к]. А2.

[Продвижение.] Уменьшим у и й на 1. Если у = О, то присвоим у < — 55; иначе, если й = О, присвоить к «- 55. $ Этот алгоритм на компьютере И1Х имеет следующий вид. Программа А (А ддитивнмб генератор чисел), Если предположить, что индексные регист17ь» 5 и 6, содержащие д и к, не затрагиваются частью программы, в которой эта подпрограмма размещена, то следующий текст программы реализует алгоритм А и заносит результат в регистр А.

»»!».!»!. Ыгюч!и е, АОР Т „б У» + 1» (возможно переполнение) ЯТА Т,б -» У». ОБ»» ! ~~!. !» . !» — !. ОЕС6 1 Й»- У вЂ” 1. дбР «+2 ЕИТб бб Если д = О,присвоить д «- 55. 36Р «+2 ЕИТ6 65 Если й = О, присвоить х+- 55. ! Этот генератор обычно работает быстрее других генераторов, обсуждавшихся ранее, так как он не требует никакого умножения. Кроме большой скорости выполнения этот алгоритм имеет самый длинный период'из тех, которые встречались ранее, за исключением периода из упр. 3.2.1.2 — 22.

Более того, как заметил Ричард Брент (В1сЬаг»( Вгепт), его можно реализовать в режиме работы с плавающей запятой, избегая преобразований целых чисел в дробные числа и наоборот (см. упр. 23). Поэтому можно доказать, что этот генератор является наилучшим источником случайных чисел для достижения практических целей. Основная причина, по которой трудно искренне рекомендовать последовательности, подобнь»е (7), состоит в том, что получено очень мало теоретических результатов, основываясь на которых, можно проверить, имеет ли такая последовательность желаемые случайные свойства.

Учитывая, как уже известно, что длинный период не всегда обеспечивает желаемые свойства, Джон Рейзер (ЛОЬп Ве1аег) (РЬ, В, 1Ьеа1з, бсашоЫ Вп(пега(су, 1977) показал, однако, что аддитивные последовательности, подобные (7), будут в высокой степени хорошо распределень» для больших размерностей, если обеспечить выполнение определенных приемлемых условий (см. упр. 26). Числа 24 и о5 в (7) обычно называют запаздыванием, а числа Х„, определенные в (7), — последовательносгпыо Фибоначчи с запаздыванием. Причины, по которым запаздывания, подобные (24, 55), работают хорошо, следуют из приведенных ниже теоретических результатов. Конечно, до некоторой степени легче использовать бспьшие запаздывания, когда в приложениях случается применять, скажем, группы из 55 чисел одновременно. Среди чисел, генерируемых (7), никогда не найдется Таблица 1 СМЕЩЕНИЯ, ПРИВОДЯЩИЕ К ДЛИННЬ1М ПЕРИОДАМ ПО МОДУЛ1О 2 (24, 65) (37, 100) (83, 258) (273, 607) (576, 3217) (7083, 19937) (38, 89) (30., 127) (107, 378) (1029, 2281) (4187, 9689) (9739, 23209) Раслгиреииые варианты зтоя таблипы привопятсв в работах В, 2!аг1ег апб Л Впйьагг, глГогтапоп алд Сопгго1 13 (1968), 541-554, 14 (1969), 566-569, 15 (1969), 67-69; У.

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

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

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