Главная > Математика > Численные методы
<< Предыдущий параграф
Следующий параграф >>
<< Предыдущий параграф Следующий параграф >>
Макеты страниц

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). Разыграем у и определим из равенства

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

<< Предыдущий параграф Следующий параграф >>
Оглавление