
- •Оглавление
- •Алгоритмы на перестановках
- •Введение
- •Перестановки. Произведение перестановок
- •Обратные перестановки. Алгоритмы
- •Рекурсия
- •Информационные структуры
- •Последовательное и связанное распределение данных
- •Стеки и очереди
- •Организация связанного распределения на основе стеков и очередей
- •Деревья
- •Представление деревьев
- •Прохождение деревьев, леса
- •Алгоритмы на графах
- •Графы. Представления графов. Связность и расстояние
- •Остовные деревья
- •Поиск по графу в глубину. Топологическая сортировка
- •Топологическая сортировка
- •Транзитивное замыкание. Поиск кратчайшего пути на графе
- •Поиск кратчайшего пути
- •4. Генерирование случайных последовательностей
- •4.1. Генерирование равномерно распределенных случайных чисел
- •Джон фон Нейман
- •4.2. Основные критерии проверки случайных наблюдений
- •4.3. Эмпирические критерии
- •Критерий равномерности (критерий частот)
- •Критерий серий
- •Критерий интервалов
- •Покер-критерий (критерий разбиений)
- •4.4. Численные распределения
- •Случайный выбор из ограниченного множества
- •Общие методы для непрерывных распределений
- •Нормальное распределение
- •Показательное распределение
- •4.5. Что такое случайная последовательность
- •Процедура получения простейшего генератора случайных чисел
- •Литература
Показательное распределение
После равномерного и нормального распределений следующим важным распределением случайной величины является показательное распределение. Такое распределение появляется в ситуации «время поступления». Например, если одна заявка в среднем поступает каждые секунд, то время между двумя последовательными поступлениями имеет показательное распределение со средним, равным . Это распределение задается формулой
.
(4.13)
Метод логарифма.
Очевидно, если
,
то
.
В [6] предлагается1
– y
рассматривать
как равномерное распределение 1
– U,
или просто U,
что позволяет записать
,
гдеX
— случайная величина, имеющая
экспоненциальное распределение со
средним, равным .
4.5. Что такое случайная последовательность
Приведем утверждение Д.Н. Франклина: «Последовательность (4.8) случайна, если она обладает любыми свойствами, присущими всем бесчисленным последовательностям независимых выборок случайных равномерно распределенных величин».
Отметим важные определения и замечания, необходимые в понимании, что такое случайная последовательность. Последовательность (4.8) равно распределена тогда и только тогда, когда
Pr(U Un < v) = v – U
для всех действительных чисел U, v при 0 U < v < 1. Последовательность может быть равно распределена, даже если она не случайна.
Процедура получения простейшего генератора случайных чисел
В начале целой переменной X присваивается некоторое значение X0. Эта величина X используется только для генерирования случайного числа. Как только потребуется новое случайное число, нужно положить
X (aX + c) mod m
и использовать новое значение X в качестве случайной величины. Необходимо тщательно выбирать X0, a, c, m и разумно использовать случайные числа согласно следующим принципам:
1. Начальное число X0 выбирается произвольно. Если программа используется несколько раз, и каждый раз требуются различные источники случайных чисел, то нужно присвоить X0 последнее значение X на предыдущем прогоне или присвоить X0, если это удобно, текущую дату и время.
2. Число m должно быть большим, но меньше, чем 230. Удобно его брать равным размеру компьютерного слова. Вычисление (aX + c) mod m должно быть точным без округления ошибки.
3. Если m — степень 2, выбираем a таким, чтобы a mod 8 = 5. Одновременный выбор a и c даст гарантию, что генератор случайных чисел будет вырабатывать все m различных возможных значений X прежде, чем они начнут повторяться.
4. Множитель a предпочтительнее выбирать между .01m и .099m.
5. Значение c не существенно, когда a — хороший множитель, за исключением того, что c не должно иметь общего множителя с m, когда m — размер компьютерного слова. Таким образом, можно выбирать c = 1 или c = a.
6. Младшие значащие цифры (справа) X не очень случайны, так что решения, основанные на числе X, всегда должны опираться, главным образом, на старшие значащие цифры. Обычно лучше считать X случайной дробью X/m между 0 и 1. Далее, чтобы подсчитать случайное целое число между 0 и k–1, нужно умножить его на k и округлить результат.
7. Желательно генерировать не более m/1000 чисел, иначе последующие будут вести себя подобно предыдущим.
Замечание. При работе с генераторами случайных чисел, необходимо по крайней мере дважды использовать совершенно разные источники случайных чисел, прежде чем получить решения. Это будет указывать на стабильность результатов, а также оградит от опасного доверия к генераторам со скрытыми недостатками.