Макеты страниц
2. Разыгрывание случайной величины.Из всех случайных величин проще всего разыгрывать (моделировать) равномерно распределенную величину . Рассмотрим, как это делается. Возьмем какое-то устройство, на выходе которого с вероятностью могут появляться цифры 0 или 1; появление той или другой цифры должно быть случайным. Таким устройством может быть бросаемая монета, игральная кость (четно — 0, нечетно — 1) или специальный генератор, основанный на подсчете числа радиоактивных распадов или всплесков радиошума за определенное время (четно или нечетно). Запишем у как двоичную дробь и на место последовательных разрядов будем ставить цифры, выдаваемые генератором: например, . Поскольку в первом разряде с равной вероятностью могут стоять 0 или 1, это число с равной вероятностью лежит в левой или правой половине отрезка . Поскольку во втором разряде тоже 0 и 1 равновероятны, число с равной вероятностью лежит в каждой половине этих половин и т. д. Значит, двоичная дробь со случайными цифрами действительно с равной вероятностью принимает любое значение на отрезке Строго говоря, разыграть можно только конечное количество разрядов k. Поэтому распределение будет не вполне требуемым; математическое ожидание окажется меньше 1/2 на величину (ибо значение возможно, а значение невозможно). Чтобы этот фактор не сказывался, следует брать многоразрядные числа; правда, в методе статистических испытаний точность ответа обычно не бывает выше 0,1% —103, а условие дает что на современных ЭВМ перевыполнено с большим запасом. Псевдослучайные числа. Реальные генераторы случайных чисел не свободны от систематических ошибок: несимметричность монеты, дрейф нуля и т. д. Поэтому качество выдаваемых ими чисел проверяют специальными тестами. Простейший тест — вычисление для каждого разряда частоты появления нуля; если частота заметно отлична от 1/2, то имеется систематическая ошибка, а если она слишком близка к 1/2, то числа не случайные — есть какая-то закономерность. Более сложные тесты — это вычисление коэффициентов корреляции последовательных чисел или групп разрядов внутри числа; эти коэффициенты должны быть близкими к нулю. Если какая-то последовательность чисел удовлетворяет этим тестам, то ее можно использовать в расчетах по методу статистических испытаний, не интересуясь ее происхождением. Разработаны алгоритмы построения таких последовательностей; символически их записывают рекуррентными формулами Такие числа называют псевдослучайными и вычисляют на ЭВМ. Это обычно удобнее, чем использование специальных генераторов. Но для каждого алгоритма есть свое предельное число членов последовательности, которое можно использовать в расчетах; при большем числе членов теряется случайный характер чисел, например — обнаруживается периодичность. Первый алгоритм получения псевдослучайных чисел был предложен Нейманом. Возьмем число из цифр (для определенности десятичных) и возведем его в квадрат. У квадрата оставим средних цифр, откинув последних и (или ) первых. Полученное число снова возведем в квадрат и т. д. Значения получаются умножением этих чисел на Например, положим и выберем начальное число 46; тогда получим Но распределение чисел Неймана недостаточно равномерно (преобладают значения что хорошо видно на приведенном примере), и сейчас их редко употребляют. Наиболее употребителен сейчас несложный и неплохой алгоритм, связанный с выделением дробной части произведения где А — очень большая константа (фигурная скобка обозначает дробную часть числа). Качество псевдослучайных чисел сильно зависит от выбора величины А: это число в двоичной записи должно иметь достаточно «случайный» хотя его последний разряд следует брать единицей. Величина слабо влияет на качество последовательности, но было отмечено, что некоторые значения оказываются неудачными. При помощи экспериментов и теоретического анализа исследованы и рекомендуются такие значения: для БЭСМ-4; для БЭСМ-6. Для некоторых американских ЭВМ рекомендуются и эти цифры связаны с количеством разрядов в мантиссе и порядке числа, поэтому для каждого типа ЭВМ они свои. Замечание 1. В принципе формулы типа (54) могут давать очень длинные хорошие последовательности, если записывать их в нерекуррентном виде и все умножения выполнять без округления. Обычное округление на ЭВМ ухудшает качество псевдослучайных чисел, но тем не менее до членов последовательности обычно годятся. Замечание 2. Качество последовательности улучшается, если ввести в алгоритм (54) небольшие случайные возмущения; например, после нормализации числа полезно засылать в последние двоичные разряды его мантиссы двоичный порядок числа Строго говоря, закономерность псевдослучайных чисел должна быть незаметна по отношению к требуемому частному применению. Поэтому в несложных или удачно сформулированных задачах можно использовать последовательности не очень хорошего качества, но при этом необходимы специальные проверки. Произвольное распределение. Для разыгрывания случайной величины с неравномерным распределением можно воспользоваться формулой (52). Разыграем у и определим из равенства Если интеграл берется в конечном виде и формула несложна, то это наиболее удобный способ. Для некоторых важных распределений — Гаусса, Пуассона — соответствующие интегралы не берутся и разработаны специальные способы разыгрывания.
|
Оглавление
|