Проектирование компьютерных сетей методами имитационного моделирования



         

Способы формирования случайных равномерно распределенных чисел - часть 3


По данным выражениям легко составляется стандартная подпрограмма получения случайных чисел. Например, при использовании мультипликативного алгоритма для получения последующего случайного числа ri+1 нужно взять последнее случайное число ri умножить его на a  и взять модуль полученного числа по m, т.е. разделить на m и принять за остаток ri+1. Выбор a, m, r0 (первого числа) производится из условия обеспечения минимальной корреляции между генерируемыми числами и максимального периода повторения последовательности цифр. Обычно m=2b, где b - число двоичных цифр в машинном слове.

Во всех выпускаемых в настоящее время ЭВМ, включая микроЭВМ, заложена стандартная подпрограмма  RANDOM (случайный), сокращенно записываемая RAND или RND, по которой вырабатывается случайное число, равномерно распределенное в интервале 0 < r i < 1. Например, подпрограмма для ЕС ЭВМ, записанная на языке ФОРТРАН, имеет вид

SUBROUTINE    RANDU ( IX. , IY , YEL)

IY =

IX*— 65539

IF(IY) 5,6,6

5 IY = IY + 2147483647 +1

6 YEL = IY

YEL = YEL*— 4656613E –9

RETURN

END,

где    IX  — число, которое при первом обращении должно содержать нечетное целое число, состоящее из девяти или менее цифр. После первого обращения  IX   должно быть равно IY , вычисленному подпрограммой при предыдущем обращении;

IY — полученное целое случайное число, требуемое при последующих обращениях к подпрограмме   0 < IY <231;

YEL — полученное равномерно распределенное случайное число 0 < ri < 1.

В качестве исходной величины рекомендуется брать число 65539.




Содержание  Назад  Вперед