
- •Генерирование последовательностей равномерно распределенных случайных чисел
- •Основные свойства равномерного распределения
- •Способы генерирования равномерно распределенных случайных чисел
- •Метод усечения
- •Общее описание алгоритма получения последовательности чисел
- •Порядок выполнения работы:
- •Содержание отчёта
- •Контрольные вопросы:
- •*Примечание: все параметры – дробные числа – задавать с точностью до 0.00001
Метод усечения
Различные варианты формирования равномерно распределенных последовательностей по этому способу основываются на том, что разряды очередного случайного числа получаются путем отбрасывания, или «усечения», части разрядов у результата нелинейного преобразования над одним или несколькими предыдущими числами.
Наиболее простой способ называется методом «середины квадрата».
1. Берется произвольное число x0, состоящее из k разрядов.
2. Величина x0 возводится в квадрат.
3. Средние k разрядов результата и составляют очередное число x1.
Указанная процедура циклически повторяется. Практически после 20-30 циклов устанавливается последовательность с распределением, близким к равномерному. Например,
Пусть
,
тогда
;
,
;
,
;
и т.д.
Это был первый алгоритм для получения псевдослучайных чисел на ЭВМ, предложенный Дж. Фон-Нейманом.
Значительно лучшие результаты дает видоизмененный метод «середины произведения».
1. Произвольно выбирается пара чисел x0 и x1.
2. Составляется их произведение x0*x1.
3. Средние цифры произведения используются в качестве очередного числа x2.
4. Далее процесс повторяется циклически.
Строго говоря, невозможно с помощью рекуррентных соотношений получить последовательность случайных чисел, которые являются независимыми реализациями случайной величины X, равномерно распределенной на интервале[0, 1], так как число используемых двоичных или десятичных разрядов в ЭВМ ограничено. На самом деле мы получаем так называемые казиравномерные случайные числа, при достаточно большом числе разрядов казиравномерная случайная величина хорошо аппроксимирует равномерную случайную величину.
Общее описание алгоритма получения последовательности чисел
ввести все исходные значения параметров из заданных диапазонов;
по указанной в задании рекуррентной формуле вычислить следующее псевдослучайное число, вывести полученное значение псевдослучайного числа на экран монитора;
выполнить переназначения значений для последующего вычисления псевдослучайного числа по рекуррентной формуле на основе вновь вычисленного значения, которое теперь будет являться предыдущим значением для следующего числа последовательности;
повторить все действия, начиная с пункта 2 до тех пор, пока не будет получено требуемое количество (N) псевдослучайной последовательности чисел, при этом накапливая значения для вычисления математического ожидания и дисперсии.
Порядок выполнения работы:
Ознакомиться с принципами построения и функционирования программных генераторов последовательностей псевдослучайных чисел, равномерно распределенных на интервале [0..1].
На любом языке программирования составить и отладить программу по указанному алгоритму (вариант из таблицы 1), реализующую получение последовательности псевдослучайных чисел, вычисления математического ожидания и дисперсии.
В процессе исследования работы генератора необходимо подобрать наилучшие входные его параметры, при которых математическое ожидание и дисперсия будут приблизительно равны соответствующим значениям равномерно распределенных случайных чисел. Такие исследования (15 экспериментов) проводить на последовательности, состоящей из 300 чисел при различных исходных параметрах в заданном диапазоне (согласно варианту задания).
Результаты экспериментов свести в таблицу, в которой указать номер эксперимента, все исходные параметры (0,00001) и полученные значения математического ожидания и дисперсии (с точностью до 0,0001).
Вывести на экран 300 чисел с учетом четырех цифр после запятой с точностью 0,0001 (по 10 чисел в строке с пробелами между числами и промежутком в одну строку между сотнями).
Проанализировать результаты, полученные при подборе параметров генератора, и сделать выводы по первой сотне чисел, по двум сотням и по трем сотням чисел.