Лекции по курсу «Алгоритмизация и программирование» Лекция 2. Генераторы случайных чисел.

advertisement
Лекции по курсу
«Алгоритмизация и программирование»
Лекция 2. Генераторы случайных чисел.
© В.М. Гриняк, доц. каф. ИСКТ ВГУЭС
Задача генерации случайных чисел
Математическое ожидание и дисперсия равномерно распределенных
в интервале (0, 1) случайных чисел
© В.М. Гриняк, доц. каф. ИСКТ ВГУЭС
Задача генерации случайных чисел
Идеальная и пример фактической кривой плотности распределения
равномерно распределенных сл. чисел
© В.М. Гриняк, доц. каф. ИСКТ ВГУЭС
Задача генерации случайных чисел
Два этапа генерации произвольного случайного числа
1. Генерация нормализованного случайного числа
(то есть равномерно распределённого от 0 до 1).
2. Преобразование нормализованных случайных
чисел в случайные числа, которые распределены по
необходимому пользователю закону распределения или в
необходимом интервале.
Пример пересчета к новому интервалу (a, b):
x = a + ( b – a) · r
© В.М. Гриняк, доц. каф. ИСКТ ВГУЭС
Физические генераторы случайных
чисел
- монета;
- игральные кости;
- барабан со стрелкой;
- аппаратурный генератор шума (транзистор).
© В.М. Гриняк, доц. каф. ИСКТ ВГУЭС
Физические генераторы случайных
чисел
Пример генерации случайных чисел с помощью монеты
Пусть в результате подбрасываний получилась
последовательность 10010100111.
Переведем число в десятичное – 1191.
Интерпретируем его как дробную часть – 0.1191
© В.М. Гриняк, доц. каф. ИСКТ ВГУЭС
Табличные генераторы случайных
чисел
Пример таблицы и получаемых из неё чисел
© В.М. Гриняк, доц. каф. ИСКТ ВГУЭС
Алгоритмические генераторы
случайных чисел
Сущность алгоритмической генерации
Числа, генерируемые алгоритмически, всегда
являются
псевдослучайными,
то
есть
каждое
последующее число зависит от предыдущего.
Последовательности таких чисел цикличны, то
есть образуют повторяющиеся периоды.
Достоинством
алгоритмических
является быстродействие.
генераторов
Недостатком
является
квазислучайность
периодичность получаемых чисел.
© В.М. Гриняк, доц. каф. ИСКТ ВГУЭС
и
Алгоритмические генераторы
случайных чисел
Основные алгоритмические методы получения случайных чисел
1. Метод серединных квадратов;
2. Метод серединных произведений;
3. Метод перемешивания;
4. Линейный конгруэнтный метод.
© В.М. Гриняк, доц. каф. ИСКТ ВГУЭС
Алгоритмические генераторы
случайных чисел
Метод серединных квадратов
Недостатки метода:
Если R0 станет равным 0, то метод вырождается;
Генератор будет повторять последовательность через
M^n шагов (M – разрядность числа, n – основание
системы счисления).
© В.М. Гриняк, доц. каф. ИСКТ ВГУЭС
Алгоритмические генераторы
случайных чисел
Метод серединных произведений
© В.М. Гриняк, доц. каф. ИСКТ ВГУЭС
Алгоритмические генераторы
случайных чисел
Метод перемешивания
© В.М. Гриняк, доц. каф. ИСКТ ВГУЭС
Алгоритмические генераторы
случайных чисел
Линейный конгруэнтный метод
Каждое последующее число рассчитывается на
основе предыдущего по следующей формуле:
ri + 1 = mod(k · ri + b, M)
где М – большое число, k – множитель, такой что 0<k<M,
b – приращение, такое что 0<b<M.
Для качественной генерации необходимо
подобрать подходящие коэффициенты.
© В.М. Гриняк, доц. каф. ИСКТ ВГУЭС
Download