AOP_Tom2 (1021737), страница 59
Текст из файла (страница 59)
шеРиф: (шеоиф за окнам.) Видит грабителя (грабитель видит шерифа), идет к двери. ГРАБИТЕЛЬ: Ставит стакан на стол; берет револьвер поавой оукой; проверяет рееольвео. ШЕРИФ: ЗКдет; открывает двери; видит грабителя (грабитель видит шерифа); входит. ГРАБИ'ГЕЛЬ: Идет к окну; целится; стреляет; ШЕРИФ ЛЕГКО РАНЕН. ШЕРИФ: Идет к окну; целится; стреляет; ПРОМАХНуЛСя; идет к двери; идет к окну. ГРАБИ ГЕЛЬ: Идет к двери; целится; целится. ШЕРИФ: Целится; стреляет; ПРОМАХНУЛСЯ, ГРАБИТЕЛЬ: Стреляет; ШЕРИФ ЛЕГКО РАНЕН. ШЕРИФ: Идет к дВери; целится; стреляет, 'ПРОмАХнУлСЯ; Выходит; целится. ГРАБИТЕЛЬ: ШЕРИФ: ГРАБИТЕЛЬ: ШЕРИФ: ГРАБИТЕЛЬ: Ш Е Р И Ф.' Целится; стреляет; ПРОМАХНУЛСЯ; целится; стоеляет; ПРОМАХНУЛ- СЯ. Стреляет; ПРОМАХНУЛСЯ; идет к окну; целится; стреляет; ПРОМАХ- НУЛСЯ. Целится; стреляет; пРОМАхнулся; целится; стреляет; ПРОМАХНУЛ- СЯ; целится; стреляет; ШЕРИФ ЛЕГКО РАНЕН.
Целится; стреляет; ПОПАДАЕТ В ГРАБИТЕЛЯ. Роняет РЕВОЛЬВЕР; грабитель умирает. Кладет револьвер в кобуру; идет к столу; берет стакан правой рукой (пустой); берет стакан из правой руки в левую руку; берет бутылку правой рукой; наливает; ставит бутылку на стол; берет стакан из левай руки в правую руку; пьет из стакана; берет стакан из правой руки в левую руку; берет бутылку правой рукой; наливает; стави~ бутылку на стол; берет стакан из левой руки в правую руку; пьет из стакана; ставит стакан на стол; идет в угол; берет деньги правой рукой; идет к двери; выходит; закрывает дверь.
ЗАНАВЕС. на шерифе.) ГРАБИ ГЕЛЬ: ГРАБИТЕЛЬ: (Грабитель за окном.) идет к двери; открывает дверь; входит; ззкрывает дверь; идет в угол; кладет деньги в углу; идет к окну; кладет оевольвер у окна; прислоняется к окну и смотрит; идет в угол; считает деньги; идет к столу; берет стакан правой рукой (пустой); берет стакан из правой руки в левую руку, берет бутылку правой рукой; наливает; ставит бутылку на стол; берет стакан из левой руки в правую руку; пьет из стакана; ставит стакан на стол; берет бутылку в правую руку; наливает; идет в угол; ставит бутылку в угол; идет к окну; беоет револьвер в правую оуку; проверяет револьвер; кладет револьвер в кобуру; идет к столу; берет стакан в правую руку; пьет из стакана; идет к окну; ставит стакан у окна. (шериф за окном.) Видит грабителя (грабитель видит шеоифа); идет к двери.
Берет оевольвео из кобуры правой рукой; проверяет револьвер; идет к двеои, проверяет оевольвер; кладет револьвео у двери. Откоывает двеои; видит грабителя (грабитель видит шеоифа); входит; идет к окну. ШЕРИФ: сценарий ук2. (Револьвео в правой оуке; деньги в левой руке; стакан на столе; бутылка на столе; кобура на грабителе; револьвер шерифа в правой руке шерифа; кобура шерифа ГРАБИТЕЛЬ: БеРет Револьвер правой Рукой.
ШЕРИФ: Идет к столу. ГРАБИТЕЛЬ: Целится; стреляет; ПРОМАХнуЛСЯ; прицеливается; стреляет; ПОПАЛ В ШЕРИФ А; задул ствол; кладет Револьвео в кобуру. шериф: Роняет револьвер; шериф умеР. ГРАБитель: идет в угол; берет деньги в правую Руку; идет к двери; выходит; закрывает двеОь. ЗАНАВЕС. Внимательный читатель этих сценариев обнаружит представленную здесь в высшей степени напряженную драму.
Программа старательно следит за перемещением каждого актера, за тем, что он держит в руках, и т. д. Действия актеров случайные, регулировались определенными вероятностями; вероятности глупых действий возрастали в зависимости от того, как много актер пил и как часто промахивался стрелок. Читатель в состоянии сделать вывод о дополнительных свойствах программы, изучая образцы сценариев.
Конечно, даже лучшие сценарии переписывают прежде, чем нх поставят, и в особенности когда неопытный писатель готовит начальный набросок. Здесь сценарии точно такие, какие действительно использовались для показа. Сценарий в!ед Музыка. Сп Гоабитель всматривается через окно хижины. КП Лицо грабителя. СП Грабитель входит в лачугу. КП Грабитель видит бутылку виски на столе. КП Шеоиф за хижиной.
СП Грабитель видит шерифа. ДП Шеоиф в двеоях за плечом грабителя, оба хватаются за револьвеоы. Сп Шериф вытаскивает револьвер. ДП Стреляет. Попадает в гОабителя. СП ШеРиФ поднимает мешки с деньгами. СП Грабитель шатается. СП ГРабитель умиРает, Падает поперек стола после попытки сделать последний выстрел в шериФа. СП ШеОиф идет к двеои с деньгами. СП Тело грабителя все еще лежит поперек стола. Камера катится назад. (Смех) СценаРий вй2.
Музыка. КП окно. Появляется грабитель. Сп Гоабитель входит в хижину с двумя мешками денег. СП Грабитель кладет мешки денег на бочку. КП Грабитель видит виски на столе. СП Грабитель наливает виски за столом. ИдЕт Считать деньги. Смеется. СП Шериф за хижиной. СП Вид из окна. СП ГОабитель видит шерифа через окно. ДП ШериФ входит в хижину, Вытаскивает. Стреляет. КП Шеоиф.
Коочится от выстрела. СП/2 ШериФ идет, шатаясь к столу, чтобы выпить... падает мертвый. СП Гоабитель покидает хижину с мешками денег.в !Замечание. КП вЂ” "крупный план", СП вЂ” "средний план" и т. д. Приведенные сценарии любезно предоставлены Томасом Г. Вулфом !ТЬошаэ Н. Жо)!') — продюсером телепередачи, впервые предложившим идею написания компьютером небольшой пьесы, а также " © 1962 Ьу Со!шпЬ!в Вговдсав!!пй був!еш, 1пс. А11 й!6жв йевегтве. Ввее Ьу регш1вв1оп, Дополнительную информацию можно найти в кинге Д Е. Р!е1йвг, Тье Тшлв!ла МвсИте (Ыеи Уотс; Д В. Ь!Рршсоц, 1962).
Дугласу Т. Россу (!Уопб!аз Т. Козе) и Гаррисону Р. Морсу (Нагг19оп К. Могве), создавшими программу.) Летом 1952 года Кристофер Стрейч (СЬгийорЬег Бсгасйеу) использовал техническое обеспечение генератора случайного числа Реггапй Маг19 1 для составления следующего письма.
Милая голубушка Моя полная сочувствия привязанность прелестно привлекает ваш показной энтузиазм. Вы — мое нежное обожание,мое затаенное обожание. Мои приятельские чувства, затаив дыхание, надеются на ваш дорогой пыл. мое томящееся от любви поклонение лелеет ваше жадное рвение.
Ваш грустящий М. У. К. [Епсоплсег 3 (1954), 4, 25-31; другой пример появился в статье на Е!ессгошс Согарпсегч в 64 издании Реагз Сус1ореоба (Ьопбоп, 1955), 190 — 191.) У читателя, несомненно, есть множество идей, как научить компьютер литературному творчеству. Это и является целью дэлиого упражнения. ° 6. [40] Просмотрите библиотеку программ каждого установленного в вашей организации компьютера и замените плохие генераторы случайных чисел хорошими. Попробуйте избежать сильных потрясений от того, что вы обнаружите.
° 7. [М40) Решительный программист формирует свои файлы, используя линейную конгрузнтную последовательность (х„) с периодом 299, которая генерируется (1) для т = 2 89 Он берет наибольшие значащие двоичные разряды [Х„/2щ) и добавляет их в свои данные с исключающим "или", но держит в секрете параметры а, с и Хе.
Покажите, что зто не очень надежная схема, и придумайте метод нахождения множителя а и первой разности Л~ — Хе за разумное приемлемое время, задав только значения [Х.уг") д 0 «150. 6. [М15) Предложите хороший метод выполнения проверки, хорошо ли работают линейные конгрузнтные генераторы. 9. [!7Муй) Пусть Хе, Хы .. — числа, полученные программой гап аггау после того, как гап Иаг1 инициализирует процесс генерирования с начальным значением 8.
Рассмотрим полиномы Р (8)=Х еих +Х ее)з +'''+Хвх +Х 9998 +'' +Лье848+Л 983. 99 98 39 88 а) Докажите, что Р„(8) = 881'! " (по модулю 2 и 8'ее + згп + 1) для некоторого показателя Л(8). Ь) Выразите Л(8) в терминах двоичного представления 8. с) Докажите, что если Хе, Х'„... — последовательность чисел, полученных той же пРогРаммой пРи начальном значении э~ Р' 8, то Х„еь В Х~.ч ь (по моДУлю 2) Длв 0 < 1с < 100 только тогда, когда )и — ни[ > 2Ю вЂ” 1.
10. [22) Преобразуйте программы гап аггау и гап 81агг на языке С в программы на языке РОКТКАИ 77 генерирования той же последовательности чисел. ь 11. [М25) Предположим, что арифметика с плавающей точкой на числах, имеющих тнп яоеь18, правильно выполняет округление в смысле раздела 4.2.2 (т. е. точно тогда, когда значения должным образом ограничены).
Преобразуйте программы гап а~таз и гвп 81агг на языке С в сходные программы, которые выдают случайные дроби с двойной точностью в [О. 1) вместо целых чисел с 30-ю двоичными разрядами. ь 12. [М21) Какой генератор случайных чисел будет подходящим для мини-компьютера, который имеет арифметику только для целых чисел в области [ — 32766 .. 32767)7 13.
(М85] Сравните генератор вычитания с заимствованием из упр. 3.2.1.1 — 12 с генератором Фибоначчи с запаздыванием, реализованным в программах этого раздела. ь 14. [М35) (Будупзее прапгие прашлааю) Пусть Х = (Х эг+Х„гаа) шод 2, Рассмотрим последовательность (гш1г, . ) = (Хш Лг,,Хш,Лша,Хгаг,, Хгш,Хааа,Х4ш,, Лшэ, Хааа.. ). (Она соответствует неоднократно вызываемой программе гап аггау(а,200), когда рассматриваются только младшие значащие двоичные разряды после отбрасывания половины элементов.) Следующий эксперимент был повторен один миллион раз с использованием последовательности (У ): "Генерируем 100 случайных двоичных разрядов, затем, если 60 или более из них равны нулю, генерируем еще один и печатаем его". В результате было напечатано 14 527 нулей и 13 955 единиц, но вероятность того, что 28 482 случайных двоичных разряда содержат самое большее 13 955 единиц, равна приблизительно .000358.
Дайте математическое объяснение, почему так много нулей будет на выходе, в 15. (35) Напишите на языке С программу генерирования для случайных целых чисел, которые получаются с помощью программы гап аггау, отбрасывая все, кроме первых 100, элементы из каждых 1 009 элементов, как рекомегьтуется в разделе. ГЛАВА 4 АРИФМЕТИКА В математической практике нет ничего более хлопотного (правы любезные студенты-математики), что более всего досаждало бы и мешало вычислителям, чем пеОемножение, деление или извлечение квадратных и кубических корней больших чисел. Выполнение этих опеоаций не только приводит к значительным потерям времени, но и сопряжено с такой массой скрытых ошибок, что я начал размышлять о поисках надежного и удобного средства устоанения подобных помех.