Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лаба 1,2.docx
Скачиваний:
10
Добавлен:
21.03.2015
Размер:
319.76 Кб
Скачать

Лаба 1 Теоретическая часть о случайных и псевдослучайных числах

При построении имитационной модели часто учитывается стохастическая природа описываемых явлений, т.е. случайность. Она описывается в виде набора факторов, которые называются случайными (СФ). Такие факторы разделяют на две группы: СФ с известным законом распределения, СФ с неизвестным законом распределения. Мы будем вести речь о первой группе.

В имитационной модели значения СФ определяются с помощью генераторов (датчиков) псевдослучайных чисел. Приставка «псевдо» имеет следующий смысл: датчик может генерировать счетное множество чисел, состоящее из ограниченного числа элементов. Диапазон генерируемых чисел задается в виде отрезка, т.е. континуума, который не является счетным ограниченным по числу элементов множеством. Тем не менее, можно считать, что числа, полученные с помощью корректно реализованного датчика, имею те же свойства, что и числа, полученные с помощью случайной выборки.

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

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

Пример: если , то. С помощью данного метода можно получить последовательность из 50 миллионов разных, равномерно-распределенных на интервалепсевдослучайных чисел.

Часть 1. Генератор равномерно распределенных псевдослучайных чисел

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

Первым шагом метода является умножение ячейки на число 1220703125 с занесением результата в ячейку. Как правило, данная операция вызывает переполнение, поэтому следует отключить соответствующую опцию в настройке компилятора или в нужном участке программного кода. В результате получается либо положительное, либо отрицательное значение, в зависимости от значения старшего (нулевого) бита. Если, то данную ячейку необходимодважды, для корректного выполнения операций с 32-битной переменной, увеличивать на число 1073741824. Искомое псевдослучайное число получается путем умноженияна. Завершить алгоритм нужно присвоением ячейкизначением.

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]