ВВЕДЕНИЕ

Системой принято называть совокупность элементов, между которыми имеются связи любой природы, и она обладает функцией (назначением), которой нет у составляющих ее элементов. Информационные системы, как правило, представляют собой сложные территориально распределенные системы с большим количеством составляющих элементов, обладающие разветвленной сетевой структурой.

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

Имитационное моделирование является одной из центральных тем при изучении дисциплин "Моделирование систем" и "Математическое моделирование". Предметом имитационного модели­рования является изучение сложных процессов и систем, подвер­женных, как правило, воздействию случайных факторов, путем проведения экспериментов с их имитационными моделями.

Суть метода проста - имитируется “жизнь” системы при многократном повторении испытаний. При этом моделируются и регистрируются случайно меняющиеся внешние воздействия на систему. Для каждой ситуации по уравнениям модели просчитываются системные показатели. Существующие современные методы математической статистики позволяют ответить на вопрос - а можно ли и, с каким доверием, использовать данные моделирования. Если эти показатели доверия для нас достаточны, мы можем использовать модель для изучения данной системы.

Можно говорить об универсальности имитационного моделирования, поскольку оно применяется для решения теоретических и практических задач анализа больших систем, включая задачи оценки вариантов структуры системы, оценки эффективности различных алгоритмов управления системой, оценки влияния измене­ния различных параметров системы на её поведение. Имитационное моделирование может быть положено также в основу синтеза больших систем, когда требуется создать систему с заданными характеристиками при определённых ограничениях, и которая при этом была бы оп­тимальной согласно выбранным критериям.

Имитационное моделирование является одним из наиболее эффективных средств исследования и проектирования сложных систем, а часто единственным практически реализуемым методом исследования процесса их функционирования.

Целью курсовой работы является изучение студентами методов имитационного моделирования и методов обработки статистических данных на ЭВМ с использованием прикладных программных средств. Приведем возможные темы курсовых работ, позволяющих исследовать сложные системы на основе имитационных моделей.

· Имитационное моделирование в задачах одномерного или плоского раскроя. Сравнение плана раскроя с оптимальным планом, полученным методами линейного целочисленного программирования.

· Транспортные модели и их варианты. Сравнение плана перевозок, полученного методом имитационного моделирования, с оптимальным планом, полученным методом потенциалов.

· Применение метода имитационного моделирования к решению оптимизационных задач на графах.

· Определение объемов производства как задача многокритериальной оптимизации. Использование метода имитационного моделирования для нахождения множества достижимости и множества Парето.

· Метод имитационного моделирования в задачах календарного планирования. Получение рекомендаций по составлению рационального расписания.

· Исследование характеристик информационных систем и каналов связи как систем массового обслуживания методом имитационного моделирования.

· Построение имитационных моделей при организации запросов в базах данных.

· Применение метода имитационного моделирования для решения задачи управления запасами с постоянным, переменным и случайным спросом.

· Исследование работы цеха рубительных машин методом имитационного моделирования.

ЗАДАНИЕ НА КУРСОВУЮ РАБОТУ

Техническая система S состоит из трех элементов, схема соединения которых приведена на рис.1. Времена безотказной работы X 1 , X 2 , X 3 элементов системы являются непрерывными случайными величинами с известными законами распределения вероятностей. Внешняя среда E оказывает воздействие на работу систему в виде случайной величины V с известным дискретным распределением вероятностей.

Требуется оценить надежность системы S методом имитационного моделирования на ЭВМ с последующей обработкой результатов эксперимента. Ниже приводится последовательность выполнения работы.

1. Разработка алгоритмов разыгрывания случайных величин X 1 , X 2 , X 3 и V с использованием генераторов случайных чисел, содержащихся в математических пакетах, например, в Microsoft Excel или в StatGraphics.

2. Определение времени безотказной работы системы Y в зависимости от времен безотказной работы X 1 , X 2 , X 3 элементов на основе структурной схемы расчета надежности.

3. Определение времени безотказной работы системы с учетом влияния внешней среды в соответствии с формулой Z=Y/(1+0,1V).

4. Построение моделирующего алгоритма, имитирующего работу системы S и учитывающего возможность отказа элементов и случайные воздействия внешней среды E. Реализация полученного алгоритма на ЭВМ и создание файла со значениями случайных величин X 1 , X 2 , X 3 , V, Y и Z. Число опытов для машинного эксперимента принять равным 100.

5. Статистическая обработка полученных результатов. С этой целью необходимо

Данные для случайной величины Z разбить на 10 групп и сформировать статистический ряд, содержащий границы и середины частичных интервалов, соответствующие частоты, относительные частоты, накопленные частоты и накопленные относительные частоты;

Для величины Z построить полигон и кумуляту частот, построить гистограмму по плотностям относительных частот;

Для величин X 1 , X 2 , X 3 , V установить их соответствие заданным законам распределения, используя критерий c 2 ;

Для случайной величины Z рассмотреть три непрерывных распределения (равномерное, нормальное, гамма), изобразить на гистограмме для Z плотности этих распределений;

С помощью критерия c 2 выполнить проверку справедливости гипотезы о соответствии статистических данных выбранным распределениям, уровень значимости при подборе подходящего распределения принять равным 0.05.

6. Записать функцию плотности распределения времени безотказной работы Z системы, определить математическое ожидание, дисперсию и среднее квадратическое отклонение случайной величины Z. Определить основные характеристики надежности системы: среднюю наработку до отказа T 1 и вероятность безотказной работы P(t) в течение времени t. Найти вероятность, что система не откажет за время T 1 .

Варианты заданий выдаются из табл.1 индивидуально каждому студенту. Обозначения случайных величин содержатся по тексту в п.2 и 3. Структурные схемы расчета надежности в соответствии с их номерами приведены на рис.1.

Таблица 1

Варианты заданий

Вариант X 1 X 2 X 3 V Номер схемы
LN(1,5;2) LN(1,5;2) E(2;0,1) B(5;0,7)
U(18;30) U(18;30) N(30;5) G(0,6)
W(1,5;20) W(1,5;20) U(10;20) П(2)
Exp(0,1) Exp(0,1) W(2;13) B(4;0,6)
N(18;2) N(18;2) Exp(0,05) G(0,7)
E(3;0,2) E(3;0,2) LN(2;0,5) П(0,8)
W(2,1;24) W(2,1;24) E(3;0,25) B(3;0,5)
Exp(0,03) Exp(0,03) N(30;0,4) G(0,8)
U(12;14) U(12;14) W(1,8;22) П(3,1)
N(13;3) N(13;3) W(2;18) B(4;0,4)
LN(2;1) LN(2;1) Exp(0,04) G(0,9)
E(2;0,1) E(2;0,1) LN(1;2) П (4,8)
W(1,4;20) W(1,4;20) U(30;50) B(3;0,2)
Exp(0,08) Exp(0,08) LN(2;1,5) G(0,3)
U(25;30) U(25;30) N(30;1,7) П(2,8)
N(17;4) N(17;4) E(2;0,04) B(2;0,3)
LN(3;0,4) LN(3;0,4) Exp(0,02) G(0,4)
E(2;0,15) E(2;0,15) W(2,3;24) П(1,6)
W(2,3;25) W(2,3;25) U(34;40) B(4;0,9)
Exp(0,02) Exp(0,02) LN(3,2;1) G(0,7)
U(15;22) U(15;22) N(19;2,2) П(0,5)
N(15;1) N(15;1) E(3;0,08) B(4;0,6)
LN(2;0,3) LN(2;0,3) Exp(0,02) G(0,5)
E(3;0,5) E(3;0,5) W(3;2) П(3,6)
W(1,7;19) W(1,7;19) U(15;20) B(5;0,7)
Exp(0,06) Exp(0,06) LN(2;1,6) G(0,2)
U(15;17) U(15;17) N(12;4) П(4,5)
N(29;2) N(29;2) E(2;0,07) B(2;0,7)
LN(1,5;1) LN(1,5;1) Exp(0,08) G(0,7)
E(2;0,09) E(2;0,09) W(2,4;25) П(2,9)

На рис.1 имеется три вида соединения элементов: последовательное, параллельное (постоянно включенный резерв) и резервирование замещением.

Время до отказа системы, состоящей из последовательно соединенных элементов, равно наименьшему из времен до отказа элементов. Время до отказа системы с постоянно включенным резервом равно наибольшему из времен до отказа элементов. Время до отказа системы с резервом замещением, равно сумме времен до отказа элементов.



Схема 1. Схема 2.


Схема 3. Схема 4.


Схема 5. Схема 6.

Схема 7. Схема 8.

Определение 24.1. Случайными числами называют возможные значения r непрерывной случайной величины R , распределенной равномерно в интервале (0; 1).

1. Разыгрывание дискретной случайной величины.

Пусть требуется разыграть дискретную случайную величину Х , то есть получить последовательность ее возможных значений, зная закон распределения Х :

Х х 1 х 2 … х п

р р 1 р 2 … р п .

Рассмотрим равномерно распределенную в (0, 1) случайную величину R и разобьем интервал (0, 1) точками с координатами р 1, р 1 + р 2 , …, р 1 + р 2 +… +р п -1 на п частичных интервалов , длины которых равны вероятностям с теми же индексами.

Теорема 24.1. Если каждому случайному числу , которое попало в интервал , ставить в соответствие возможное значение , то разыгрываемая величина будет иметь заданный закон распределения:

Х х 1 х 2 … х п

р р 1 р 2 … р п .

Доказательство.

Возможные значения полученной случайной величины совпадают с множеством х 1 , х 2 ,… х п , так как число интервалов равно п , а при попадании r j в интервал случайная величина может принимать только одно из значений х 1 , х 2 ,… х п .

Так как R распределена равномерно, то вероятность ее попадания в каждый интервал равна его длине, откуда следует, что каждому значению соответствует вероятность p i . Таким образом, разыгрыываемая случайная величина имеет заданный закон распределения.

Пример. Разыграть 10 значений дискретной случайной величины Х , закон распределения которой имеет вид: Х 2 3 6 8

р 0,1 0,3 0,5 0,1

Решение. Разобьем интервал (0, 1) на частичные интервалы: D 1 - (0; 0,1), D 2 – (0,1; 0,4), D 3 - (0,4; 0,9), D 4 – (0,9; 1). Выпишем из таблицы случайных чисел 10 чисел: 0,09; 0,73; 0,25; 0,33; 0,76; 0,52; 0,01; 0,35; 0,86; 0,34. Первое и седьмое числа лежат на интервале D 1 , следовательно, в этих случаях разыгрываемая случайная величина приняла значение х 1 = 2; третье, четвертое, восьмое и десятое числа попали в интервал D 2 , что соответствует х 2 = 3; второе, пятое, шестое и девятое числа оказались в интервале D 3 – при этом Х = х 3 = 6; на последний интервал не попало ни одного числа. Итак, разыгранные возможные значения Х таковы: 2, 6, 3, 3, 6, 6, 2, 3, 6, 3.

2. Разыгрывание противоположных событий.

Пусть требуется разыграть испытания, в каждом из которых событие А появляется с известной вероятностью р . Рассмотрим дискретную случайную величину Х , принимающую значения 1 (в случае, если событие А произошло) с вероятностью р и 0 (если А не произошло) с вероятностью q = 1 – p . Затем разыграем эту случайную величину так, как было предложено в предыдущем пункте.

Пример. Разыграть 10 испытаний, в каждом из которых событие А появляется с вероятностью 0,3.


Решение. Для случайной величины Х с законом распределения Х 1 0

р 0,3 0,7

получим интервалы D 1 – (0; 0,3) и D 2 – (0,3; 1). Используем ту же выборку случайных чисел, что и в предыдущем примере, для которой в интервал D 1 попадают числа №№1,3 и 7, а остальные – в интервал D 2 . Следовательно, можно считать, что событие А произошло в первом, третьем и седьмом испытаниях, а в остальных – не произошло.

3. Разыгрывание полной группы событий.

Если события А 1 , А 2 , …, А п , вероятности которых равны р 1 , р 2 ,… р п , образуют полную группу, то для из разыгрывания (то есть моделирования последовательности их появлений в серии испытаний) можно разыграть дискретную случайную величину Х с законом распределения Х 1 2 … п, сделав это так же, как в пункте 1. При этом считаем, что

р р 1 р 2 … р п

если Х принимает значение х i = i , то в данном испытании произошло событие А i .

4. Разыгрывание непрерывной случайной величины.

а) Метод обратных функций.

Пусть требуется разыграть непрерывную случайную величину Х , то есть получить последовательность ее возможных значений x i (i = 1, 2, …, n ), зная функцию распределения F (x ).

Теорема 24.2. Если r i – случайное число, то возможное значение x i разыгрываемой непрерывной случайной величины Х с заданной функцией распределения F (x ), соответствующее r i , является корнем уравнения

F (x i ) = r i . (24.1)

Доказательство.

Так как F (x ) монотонно возрастает в интервале от 0 до 1, то найдется (причем единственное) значение аргумента x i , при котором функция распределения примет значение r i . Значит, уравнение (24.1) имеет единственное решение: х i = F -1 (r i ), где F -1 - функция, обратная к F . Докажем, что корень уравнения (24.1) является возможным значением рассматриваемой случайной величины Х. Предположим вначале, что x i – возможное значение некоторой случайной величины x, и докажем, что вероятность попадания x в интервал (с, d ) равна F (d ) – F (c ). Действительно, в силу монотонности F (x ) и того, что F (x i ) = r i . Тогда

Следовательно, Значит, вероятность попадания x в интервал (c, d ) равна приращению функции распределения F (x ) на этом интервале, следовательно, x = Х .

Разыграть 3 возможных значения непрерывной случайной величины Х , распределенной равномерно в интервале (5; 8).

F (x ) = , то есть требуется решить уравнение Выберем 3 случайных числа: 0,23; 0,09 и 0,56 и подставим их в это уравнение. Получим соответствующие возможные значения Х :

б) Метод суперпозиции.

Если функция распределения разыгрываемой случайной величины может быть представлена в виде линейной комбинации двух функций распределения:

то , так как при х ®¥ F (x ) ® 1.

Введем вспомогательную дискретную случайную величину Z с законом распределения

Z 1 2 . Выберем 2 независимых случайных числа r 1 и r 2 и разыграем возможное

p C 1 C 2

значение Z по числу r 1 (см. пункт 1). Если Z = 1, то ищем искомое возможное значение Х из уравнения , а если Z = 2, то решаем уравнение .

Можно доказать, что при этом функция распределения разыгрываемой случайной величины равна заданной функции распределения.

в) Приближенное разыгрывание нормальной случайной величины.

Так как для R , равномерно распределенной в (0, 1), , то для суммы п независимых, равномерно распределенных в интервале (0,1) случайных величин . Тогда в силу центральной предельной теоремы нормированная случайная величина при п ® ¥ будет иметь распределение, близкое к нормальному, с параметрами а = 0 и s =1. В частности, достаточно хорошее приближение получается при п = 12:

Итак, чтобы разыграть возможное значение нормированной нормальной случайной величины х , надо сложить 12 независимых случайных чисел и из суммы вычесть 6.

ЛАБОРАТОРНАЯ РАБОТА ММ- 03

РАЗЫГРЫВАНИЕ ДИСКРЕТНЫХ И НЕПРЕРЫВНЫХ СВ

Цель работы: изучение и программная реализация методов разыгрывания дискретных и непрерывных СВ

ВОПРОСЫ ДЛЯ ИЗУЧЕНИЯ ПО КОНСПЕКТУ ЛЕКЦИЙ:

1. Дискретные случайные величины и их характеристики.

2. Разыгрывание полной группы случайных событий.

3. Разыгрывание непрерывной случайной величины методом обратной функции.

4. Выбор случайного направления в пространстве.

5. Стандартное нормальное распределение и его пересчет для заданных параметров.

6. Метод полярных координат для разыгрывания нормального распределения.

ЗАДАЧА 1. Сформулировать (письменно) правило разыгрывания значений дискретной СВ, закон распределения которой задан в виде таблицы. Составить подпрограмму-функцию для разыгрывания значений СВ с использованием БСВ, получаемых от подпрограммы ГСЧ. Разыграть 50 значений СВ и вывести их на экран.

Где N – номер варианта.

ЗАДАЧА 2. Дана функция плотности распределения f(x) непрерывной случайной величины X.

В отчете записать формулы и вычисление следующих величин:

А) константу нормировки;

Б) функцию распределения F(x);

В) математическое ожидание M(X);

Г) дисперсию D(X);

Д) формулу для разыгрывания значений СВ по методу обратной функции.

Составить подпрограмму-функцию для разыгрывания заданной СВ и получить 1000 значений этой СВ.

Построить гистограмму распределения полученных чисел по 20 отрезкам.

ЗАДАЧА 3. Составить процедуру, позволяющую разыграть параметры случайного направления в пространстве. Разыграть 100 случайных направлений в пространстве.

Использовать встроенный датчик псевдослучайных чисел.

Письменный отчет по лабораторной работе должен содержать:

1) Название и цель работы, группу, фамилию и номер варианта студента;

2) По каждой задаче: -условие, -необходимые формулы и математические преобразования, -имя программного файла, реализующего используемый алгоритм, -результаты вычислений.

Отлаженные программные файлы сдаются вместе с письменным отчетом.

ПРИЛОЖЕНИЕ

Варианты плотности распределения непрерывной СВ

Вар-т

Плотность распределения СВ

Вар-т

Плотность распределения СВ

5.2.2. Разыгрывание непрерывной случайной величины

Пусть требуется разыграть непрерывную случайную величину Х , т.е. получить последовательность ее возможных значений x i (i = 1,2,...). При этом функция распределения F(X) известна.

Существует следующая теорема .

Если r i - случайное число, то возможное значение x i разыгрываемой непрерывной случайной величины Х с известной функцией распределения F(X) соответствующее r i , является корнем уравнения

Алгоритм разыгрывания непрерывной случайной величины:

1. Необходимо выбрать случайное число r i .

2. Приравнять выбранное случайное число известной функции распределения F(X) и получить уравнение .

3. Решить данное уравнение относительно x i . Полученное значение x i будет соответствовать одновременно и случайному числу r i . и заданному закону распределения F(X).

Пример5.2.

Разыграть 3 возможных значения непрерывной случайной величины Х , распределенной равномерно в интервале (2; 10).

Решение

Функция распределения величины Х имеет следующий вид:

По условию, a = 2, b = 10, следовательно,

В соответствии с алгоритмом разыгрывания непрерывной случайной величины приравняем F(X) выбранному случайному числу r i .. Получим отсюда:

Подставим эти числа в уравнение (5.3).Получим соответствующие возможные значения х :

Пример 5.3

Непрерывная случайная величина Х распределена по показательному закону с известной функцией

(x>0, параметр > 0 известен)

Требуется найти формулу для разыгрывания возможных значений Х .

Решение

В соответствии с алгоритмом разыгрывания непрерывной случайной величины получим уравнение

Решим это уравнение относительно x i . Получим:

Случайное число r i находится в интервале (0, 1). Следовательно число (1- r i ) также случайное и принадлежит интервалу (0, 1). То есть случайные величины R и 1 - R распределены одинаково, т.е. равномерно в одном и том же интервале (0, 1). Поэтому для отыскания значения x i можно воспользоваться более простой формулой:

5.2.3. Разыгрывание случайной величины X, распределенной нормально

Известно, что если случайная величина R распределена равномерно в интервале (0, 1), то ее математическое ожидание М(R) = 1/2, а дисперсия D(R) = 1/12.

Составим сумму n независимых случайных величин R j (j = 1,2,...n), которые распределены равномерно в интервале (0, 1). Получим .

Пронормируем эту сумму. Для этого найдем сначала ее математическое ожидание и дисперсию. Известно, что математическое ожидание суммы случайных величин равно сумме математических ожиданий слагаемых. Сумма R i содержит n слагаемых. Математическое ожидание каждого слагаемого равна 1/2. Следовательно математическое ожидание суммы равно:

;

Аналогично для дисперсии суммы R j получим:

Отсюда среднее квадратическое отклонение суммы R j :

Теперь пронормируем сумму R j .

Для этого вычтем из суммы R j математическое ожидание этой суммы и разделим на среднее квадратическое отклонение суммы R j . Получим

(то есть )

На основании центральной предельной теоремы теории вероятностей при распределение этой нормированной случайной величины стремится к нормальному закону с параметрами a = 0 и = 1.

При конечном n распределение можно рассматривать как приближенно нормальное. Например, при n = 12 получим достаточно точное для практики приближение

Таким образом, получаем, что для того чтобы разыграть возможное значение x i нормальной случайной величины Х с параметрами a = 0 и = 1, нужно сложить 12 независимых случайных чисел и из полученной суммы вычесть 6.

Пример 5.4.

1. Разыграть 100 возможных значений случайной величины Х распределенной нормально с параметрами a = 0 и = 1.

2. Оценить параметры разыгранной случайной величины Х .

Решение

1. Выберем 12 случайных чисел распределенных равномерно в интервале (0, 1) из таблицы случайных чисел, либо из компьютера. Сложим эти числа и из суммы вычтем 6, в итоге получим:

Поступая аналогичным образом найдем остальные возможные значения .

2. Выполнив необходимые расчеты найдем выборочную среднюю, которая является оценкой и выборочное среднее квадратическое отклонение, которое является оценкой . Получим:

Как видим, оценки удовлетворительны, т.е. близко к нулю, а близко к единице.

Если требуется разыграть значения нормальной ненормированной случайной величины с математическим ожиданием отличным от нуля и отличным от единицы, то сначала разыгрывают возможные значения x i нормированной случайной величины, а затем находят искомое значение по формуле

которая получена из соотношения:

Таблица 5.1

Формулы для моделирования случайных величин

Из всех случайных величин проще всего разыгрывать (моделировать) равномерно распределенную величину . Рассмотрим, как это делается.

Возьмем какое-то устройство, на выходе которого с вероятностью могут появляться цифры 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). Разыграем у и определим из равенства

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



Close