![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Программный датчик RANDU. Общая характеристика, принцип работы, особенности
Этот датчик специально предназначен для системы IBM и образует 229 значений перед началом повторений, т.е. длина цикла равна 229 (при 32-х разрядном машинном слове). Алгоритм датчика реализует метод остатка степеней (рис. 8.1). Назначение датчика RANDU: Вычисление равномерно распределенных случайных действительных чисел YF в интервале [0, 1] и случайных целых чисел IY в интервале [0, 231]. В качестве входа служит целое случайное число IX, на выходе образуется новое целое число IY и вещественное YF. Обращение к датчику: RANDU (IX, IY, YF). Описание параметров: IX – при первом обращении – нечетное целое число с числом цифр После первого обращения IX=IY, где IY – целое число, вычисленное при предыдущем обращении. IY – полученное в результате целое случайное число, требуемое при последующих обращениях. IY находится в интервале [0, 231]. YF– полученное в результате равномерно распределенное действительное число в интервале [0, 1], представленное в форме с плавающей запятой.
Используя датчик RANDU, построим алгоритм вычисления последовательности равномерно распределенных случайных чисел и ее печать (рис. 8.2).
Алгоритм вычисления последовательности равномерно распределенных случайных чисел. Исходные данные: N - длина последовательности (количество испытаний). IX - начальное значение, нечетное целое число с числом цифр < 9. Например: IX = 1234567. Различные начальные значения параметра IX позволяют формировать различные последовательности равномерно распределенных псевдослучайных чисел. Для генерирования равномерно распределенных случайных чисел на отрезке [0, 1] используется отделение дробной части от сложного арифметического выражения, содержащего предшествующее число. Vi+1 =FRAC(k Vi) FRAC – оператор выделения дробной части, Vi - предшествующее случайное число, Vi+1 - последующее случайное число, k-8t = 3, t - нечетное целое число. Задание различных начальных значений V0 позволяет формировать различные последовательности случайных чисел. Количество случайных чисел в одном периоде от нескольких тысяч до сотен тысяч. Для перевода равномерно распределенных случайных чисел из отрезка [0, 1] в отрезок [а, b] можно использовать: xi+1= a + (b-a)Vi+1.
|