Моделирование генераторов случайных чисел
Рассмотрение методов получения равномерно распределенных случайных чисел. Моделирование случайных чисел с заданным законом распределения вероятностей. Примеры компьютерных программ реализации генераторов. Практические советы к лабораторным работам.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | методичка |
Язык | русский |
Дата добавления | 04.10.2016 |
Размер файла | 207,5 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
МОСКОВСКИЙ ЭНЕРГЕТИЧЕСКИЙ ИНСТИТУТ
(ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ)
Рекомендации к лабораторным занятиям
по курсу "Моделирование"
для студентов, обучающихся по направлению
"Информатика и вычислительная техника"
МОДЕЛИРОВАНИЕ ГЕНЕРАТОРОВ СЛУЧАЙНЫХ ЧИСЕЛ
В.Н. Балашов
А.Г. Гольцов
Москва Издательство МЭИ 2009
Утверждено учебным управлением МЭИ
Подготовлено на кафедре вычислительных машин, систем и сетей.
Балашов В.Н., Гольцов А.Г.
Моделирование генераторов случайных чисел
Рекомендации к лабораторным занятиям. Методическое пособие по курсу "Моделирование" / Под ред. ______________ - М.: Изд-во МЭИ, 2009, 40с.
Представлены описание лабораторной работы, выполняемой на ПЭВМ типа IBM PC, по моделированию генераторов случайных чисел. Лабораторная работа включает в себя теоретический материал, рекомендации по разработке и отладке программ генераторов равномерно распределенных и произвольно распределенных случайных чисел, а также методы и рекомендации по статистической оценке распределений полученных последовательностей случайных чисел.
Предназначен студентам специальности 22.01 "Вычислительные машины, комплексы, системы и сети", изучающим курс "Моделирование".
Работа выполняется по индивидуальным заданиям. Продолжительность лабораторного занятия - 8 час.
ВВЕДЕНИЕ
В процессе имитационного моделирования вычислительных систем и сетей применяются генераторы случайных чисел с заданным законом распределения. В настоящее время применяются в основном программные генераторы случайных чисел, входящие в форме стандартной функции в трансляторы с языков высокого уровня или в программы моделирования, например, Матлаб. В лабораторной работе исследуются два метода получения равномерно распределенных случайных чисел и два метода получения случайных чисел с заданным законом распределения. Строго говоря, получаемые программным путем последовательности чисел являются псевдослучайными, так как при сохранении в алгоритме начальных значений (параметров и "затравок") генерируется та же последовательность чисел.
1. МЕТОДЫ ПОЛУЧЕНИЯ РАВНОМЕРНО РАСПРЕДЕЛЕННЫХ СЛУЧАЙНЫХ ЧИСЕЛ
Генераторы равномерно распределенных случайных чисел широко применяются в имитационном моделировании и являются основой алгоритмов получения случайных чисел с заданным законом распределения. Рассмотрим два таких метода.
1.1 Метод середин квадратов
В этом методе строится последовательность целых псевдослучайных чисел, которым ставится в соответствие числа на интервале [0, 1). Генератор работает на 4k разрядной сетке (k - целое число), например, на 28-ми разрядной сетке из двоичных чисел.
На первом шаге алгоритма задается произвольное число "затравка" x0 разрядности 2k. Это число можно задать с клавиатуры или взять случайное число, полученное при помощи встроенной в транслятор языка программирования функции (для языка Паскаль Random (I: word): word); На каждом шаге алгоритма целое число xi возводится в квадрат (получается число разрядности 4k), из него выбираются средние 2k разрядов и принимаются за следующее псевдослучайное число xi+1.
Эта последовательность чисел преобразуется в дробную часть нормированной десятичной дроби, что превращает ее в последовательность псевдослучайных чисел с равномерным законом распределения на интервале [0,1).
Рассмотрим алгоритм метода середин квадратов на примере для калькулятора.
Зададимся 8-разрядной десятичной сеткой, пусть начальное число x0 = 4824. Будем генерировать случайные числа в формате 0.хххх, то есть с четырьмя десятичными знаками после запятой.
Получим следующую последовательность чисел
x0=4824; x02=23270976; u0=0.4824;
x1=2709; x12=07338681; u1=0.2709;
x2=3386; x22=11464996; u2=0.3386;
x3=4649; x22 = 21613201; u3=0.4649; ...
Нельзя априори утверждать, что полученная последовательность чисел ui обладает необходимыми свойствами. Необходимо проверить статистическую гипотезу о том, что последовательность u0 является последовательностью случайных чисел с равномерным распределением.
Недостатком метода середин квадратов является возможность получить на очередном шаге алгоритма нулевого значения ui. Тогда и все последующие числа в последовательности также будут нулями. (Например:
56002034 0020 00000400 0004 00000016 0000
Поэтому при программной реализации метода середин квадратов необходимо проводить "проверку на ноль". Если в последовательности {ui} появляется нулевой элемент, то алгоритм необходимо выполнять сначала, задав новую затравку.
Приведем пример фрагмента программы, реализующей метод середин квадратов. Каждый вызов функции rrsch дает новое псевдослучайное число:
var xi: longint; {глобальная переменная; сюда изначально
должна быть помещена затравка}
function rrsch:real;
begin
xi:=((xi*xi) shr 7) and $3FFF; {28 бит - квадрат, 14 бит - число}
if xi=0 then begin
Random( …); {заносит в RandSeed очередное псевдослучайное число - затравку}
xi:=RandSeed and $3FFF;
end;
rrsch:=xi/$4000; {двоичное 01000000 00000000}
end;
При работе на 28-ми разрядной сетке для двоичных чисел период последовательности псевдослучайных чисел обычно не превышает 200 - 500, что недостаточно для проверки закона распределения псевдослучайных чисел (необходимо получить последовательность из 15 - 20 тыс. чисел). Поэтому в программу необходимо включить проверку повторяемости элементов последовательности чисел и при появлении ранее встречающегося числа (например, х2 - следующего за очередной затравкой), необходимо прервать программу и продолжить ее с новой затравкой.
1.2 Метод мультипликативного датчика
В этом методе очередное случайное число xi+1 получается как остаток от деления двух больших целых чисел. Это случайное число определяется следующей формулой
xi+1 = (axi+b) mod M;
где a, b, M - заданные целые числа,. xi - предыдущее целое случайное число.
Для получения "хорошего" со статистической точки зрения распределения рекомендуется выбирать параметры M, a и b исходя из следующих соображений:
M -- большое целое число, желательно простое;
a -- целое число порядка корня квадратного из M, желательно простое, M не должно делиться на a;
a и M выбираются такими, чтобы их произведение не выходило за границы разрядной сетки для целых переменных;
b -- целое число того же порядка, что и a.
В ходе вычислительных экспериментов замечено, что хорошие в статистическом смысле реализации мультипликативного датчика получаются, если целое число a выбрано так, что бы при делении на 8 в остатке оставалось бы 3 или 5.
Слагаемое b используется, чтобы устранить потенциальную опасность получения непрерывной последовательности нулей, начиная с определенного шага. Если M и a -- простые числа, то такой опасности не существует.
Случайное число, принадлежащее интервалу [0,1), вычисляется по формуле:
ui = xi/M;
Понятно, что для начала работы генератора случайных чисел необходимо задать затравку x0.
В качестве примера приведем фрагмент программы, реализующей мультипликативный датчик.
var xi: longint; {глобальная переменная; сюда изначально
должна быть помещена затравка}
function rrsch: real;
{M=1000; a=37; b=1;}
begin
xi := (37*xi+b) mod 1000; {изменение глобальной переменной}
rrsch:=xi/1000;
end;
В этой программе параметры М. a, b выбраны исходя из возможностей ручного счета на калькуляторе. Для хорошо работающего генератора псевдослучайных чисел эти параметры должны быть очень большими.
Генератор создает следующую последовательность псевдослучайных чисел (N = 25 первых чисел)
xi = {38, 407, 60, 221, 178, 587, 720, 641, 718, 567, 980, 261, 658, 347, 840, 810, 998, 927, 300, 101, 738, 307, 360, 321, …}.
ui = {0.038, 0.407, 0.060, 0.221, 0.178, 0.587, 0.720, 0.641, 0.718, 0.567, 0.980, 0.261, 0.658, 0.347, 0.840, 0.081, 0.998, 0.927, 0.300, 0.101, 0.738, 0.307, 0.360, 0.321, 0.878, …}.
При выполнении работы необходимо получить 15 - 20 тыс. чисел.
1.3 Период последовательности псевдослучайных чисел
Программные генераторы случайных чисел реализуются на компьютерах, обладающих ограниченной разрядной сеткой. Поэтому любая последовательность чисел, программно реализуемая компьютером, будет повторяться, начиная с некоторого числа.
Периодом генератора случайных чисел называют количество неповторяющихся чисел в последовательности {xi} при заданных параметрах и "затравке". Для генераторов случайных чисел важно, что бы эта последовательность была бы достаточно длинной.
Период генератора случайных чисел определяется экспериментально в ходе вычислительного эксперимента. Следует учитывать, что последовательность случайных чисел имеет апериодическую (начальную) и периодическую части. Длина апериодической части заранее не известна. Поэтому при определении периода генератора случайных чисел необходимо зафиксировать одно из целых чисел, полученных в результате работы процедуры генератора, и подсчитать количество вызовов процедуры генератора до того момента, когда в результате получится то же целое число.
Если период псевдослучайной последовательности чисел оказывается коротким (меньше 15 - 20 тыс.), необходимо прервать выполнение программы и продолжить ее работу с новой затравкой.
Заметим, что определять период генератора случайных чисел по нормированной последовательности {ui} не следует, так как возможны ошибки, связанные с округлением.
1.4 Оценка качества последовательности случайных чисел
Оценка качества последовательности случайных чисел проводится методами математической статистики. Это стандартная задача проверки статистической гипотезы о типе распределения вероятности.
Допустим, что генератор создает последовательность случайных чисел с равномерным на интервале [0, 1) законом распределения вероятности (статистическая гипотеза). Определим вероятность этого предположения.
Для проверки гипотезы необходимо выполнить следующие действия:
1. разбить интервал [0, 1) на m частей ( m = 20 - 50 );
2. определить число vj случайных чисел ui , попадающих в каждый интервал;
3. определить теоретическое число wj равномерно распределенных случайных чисел, которые должны попасть в эти интервалы;
4. вычислить значение критерия Пирсона ч2;
5. по таблице распределения ч2 найти вероятность правильности статистической гипотезы.
Проведем проверку статистической гипотезы о равномерности распределения последовательности случайных чисел, полученной в п.1.2.
Разобьем интервал 0 ? x < 1 на m = 5 частей (в последовательности всего N = 25 чисел).
Построим гистограмму попаданий случайных чисел экспериментальной и теоретической последовательности в эти интервалы.
v1 - v5 - экспериментальная,
w1 - w5 - теоретическая.
Рисунок 1. Гистограммы попаданий случайных чисел в интервалы.
Рассмотрим функцию равномерного распределения плотности вероятности на интервале [0, 1).
Рисунок 2. Функция плотности вероятности для последовательности равномерно распределенных случайных чисел.
Функция распределения вероятностей связана с функцией плотности распределения вероятностей следующим соотношением.
(1)
График функции равномерного распределения вероятности представлен на следующем рисунке.
Рисунок 3. Функция распределения вероятности для последовательности равномерно распределенных случайных чисел.
Вероятность попадания случайной величины в каждый интервал на оси x равна
(2)
Тогда число случайных чисел последовательности длиной N, которые теоретически должны попасть в каждый интервал, равно
(3)
Гистограмма теоретического распределения числа попаданий равномерно распределенных случайных чисел в интервалы показана на рисунке 1 пунктиром.
Понятно, что чем ближе теоретическая и экспериментальная гистограммы, тем ближе распределение вероятности случайных чисел экспериментальной и теоретической последовательности. Это простое соображение положено в основу критерия согласия Пирсона (критерия ч2 ).
Количественную оценку близости теоретического и экспериментального распределения вероятности случайных величин по критерию Пирсона находят следующим образом. Вычисляем значение ч2 по следующей формуле
(4)
Для нашего примера значение ч2 = 1.6; Дальше необходимо взять таблицу распределения ч2 и по ней определить вероятность выдвинутой статистической гипотезы. В эту таблицу, кроме значения ч2 входит второй параметр - число степеней свободы n. Число степеней свободы n на единицу меньше числа интервалов m на гистограмме.
(5)
Для рассматриваемого примера число степеней свободы n = 4.
В результате по таблице находим, что вероятность выдвинутой статистической гипотезы равна 0.81 (81%). Как относиться к этому результату? Понятно, что если вероятность правильности статистической гипотезы мала (обычно меньше 70%), то результат нельзя считать хорошим. Аналогично обстоит дело и с очень высокой вероятностью правильности статистической гипотезы (обычно больше 95%). В этом случае, возможно, что последовательность чисел не является случайной.
Проверку статистической гипотезы по критерию ч2 удобно проводить средствами программы Microsoft Excel. Для этого необходимо загрузить числа из экспериментальной и теоретической гистограмм в ячейки программы Excel и вызвать функцию ХИ2ТЕСТ. Для примера на рисунке 1 получим:
Рассмотренная схема проверки статистических гипотез работает и для случайных величин с произвольным распределением вероятности. Аналогичным образом строится экспериментальная и теоретическая гистограммы и вычисляется значение ч2 по формуле (4). При построении теоретической гистограммы число случайных величин wi , которые должны попасть в каждый интервал, вычисляется по формуле (3). Вероятность попадания числа в каждый интервал ДPi определяется по формуле (2), при этом в общем случае эти вероятности разные.
При выполнении лабораторной работы число случайных чисел в последовательности N имеет порядок 15 - 20 тыс. Число интервалов m на гистограмме необходимо выбирать порядка 20 - 50. Удобнее всего выбирать m из ряда чисел 21, 31, 41 и т.д., что позволяет получить удобные значения для числа степеней свободы n = 20, 30, 40 и т.д. Эти числа обычно указываются в таблице распределения ч2 .
2. МЕТОДЫ ПОЛУЧЕНИЯ СЛУЧАЙНЫХ ЧИСЕЛ С ЗАДАННЫМ ЗАКОНОМ РАСПРЕДЕЛЕНИЯ ВЕРОЯТНОСТЕЙ
В качестве основы при построении генераторов случайных чисел с заданным законом распределения берется хорошо работающий генератор случайных чисел с равномерным законом распределения. На практике широко применяются два метода получения последовательности случайных чисел с заданным законом распределения: метод обратной функции и метод режекции. моделирование генератор случайный число
2.1 Метод обратной функции
Пусть функция распределения вероятности F(x) задана аналитически. Метод обратной функции основан на взаимно - однозначном соответствии значений функции F(x) точкам случайной переменной, равномерно распределенной на отрезке [0, 1].
Например, для экспоненциального закона распределения вероятности
(6)
График этой функции имеет следующий вид
Рисунок 4. Функция распределения вероятности для экспоненциального закона.
Для получения обратной функции аналитически преобразуем формулу (6), положив в качестве независимой переменной F. Получим
(7)
Независимая переменная F имеет смысл вероятности и изменяется на интервале 0 ? F < 1.
График обратной функции представлен на следующем рисунке
Рисунок. 5. График обратной функции для экспоненциального закона распределения вероятности.
Метод обратной функции заключается в том, что в качестве независимой переменной F принимаются случайные числа с равномерным законом распределения на интервале [0, 1). Таким образом, для получения последовательности случайных чисел с экспоненциальным законом распределения необходимо взять генератор случайных чисел с равномерным законом распределения (п. 1.1 и 1.2) и преобразовать случайные числа по формуле (7).
Рассмотрим второй пример. Пусть функция плотности распределения случайной величины p(x) задана графически.
Рисунок 6. Функция плотности распределения случайной величины, заданная графически.
Необходимо построить генератор случайных чисел с этой функцией распределения. На первом этапе необходимо получить аналитическое описание заданной функции. Площадь S области, ограниченной функцией распределения плотности вероятности и осью x, равна 1. Это позволяет найти высоту h на графике на рисунке 6. Площадь двух треугольников равна
(8)
Поэтому
Найдем аналитическое описание функции на отрезке [1, 5]. Возьмем уравнение прямой, проходящей через две заданные точки в форме
(9)
и найдем значения коэффициентов a и b. Для этого подставим в это уравнения координаты двух базовых точек (x = 1, y = ј) (x = 5, y = 0). Получим два алгебраических уравнения
Из этих уравнений находим a = - 1/16, b = 5/16. Поэтому функция плотности вероятности на отрезке [1, 5] имеет следующий вид
Аналогично для отрезка [5, 9] получим (10)
Для создания генератора случайных чисел по методу обратной функции необходимо найти функцию распределения вероятности F(x).
Подставим формулы (10) в интеграл (1) и проведем вычисления
(11)
Решая эти уравнения как квадратные относительно x, получим выражения для обратных функций
(12)
Знаки в этих формулах выбираются из граничных условий. Подставляя в первую формулу F = 0, получим, что необходим знак минус. Подставляя во вторую формулу F =0.5, получим, что необходим знак плюс. Окончательно получим
(13)
Для получения последовательности случайных чисел с законом распределения, представленным на рисунке 6, необходимо взять генератор случайных чисел с равномерным законом распределения (п. 1.1 и 1.2) и преобразовать случайные числа по формулам (13).
Программа, реализующая этот генератор случайных чисел, имеет следующий вид (функция rrsch -- генератор равномерно распределенных случайных чисел в интервале [0,1)).
function generator: real;
var f: real;
begin
f := rrsch;
if f<0.5 then
generator := 5-4*sqrt(1-2*f)
else
generator := 5+4*sqrt(2f-1);
end;
2.2 Метод исключения (режекции)
Для реализации этого метода необходимо знать функцию распределения плотности вероятностей случайной величины p(x). Случайная величина должна быть задана на ограниченном отрезке [a, b]. Если область определения не ограничена (например, для нормального или экспоненциального распределений), то ее ограничивают, добиваясь приемлемой точности моделирования. На рис. 2.8 представлен график функции плотности распределения для нормального закона, подготовленной для реализации метода исключения.
Рисунок 7. Нормальный закон распределения плотности вероятности, подготовленный для реализации метода исключения.
В методе исключения применяют два разных генератора случайных чисел с равномерным распределением вероятности U1(a, b) для области определения и U2(0, h) для области значений заданной функции плотности распределения p(x).
Генерация последовательности случайных чисел с заданным распределением проводится по следующему алгоритму:
1. Генерируется случайное число x, равномерно распределенное на интервале [a, b].
2. Генерируется случайное число y, равномерно распределенное на интервале [0, h].
3. Проверяется, попадает ли точка с координатами x, y под кривую функции распределения плотности вероятности y = p(x) (в область B на рисунке 7.) или нет. Если точка попадает в область B, то случайное число x принимается в качестве элемента случайной последовательности. Если точка не попадает в область B (попадает в область A над кривой), то эта точка отбрасывается.
4. Алгоритм повторяется с п. 1.
Этот алгоритм соответствует случайному "бросанию" точек в прямоугольник с координатами (a, b, 0, h) ((-6, 6, 0, 0.4) на рисунке 7) и проверке, попадает ли точка под кривую распределения плотности вероятности или нет. Для получения правильных результатов необходимо, чтобы x и y были независимыми случайными величинами. Поэтому необходимо использовать для их получения два различных генератора случайных чисел.
Приведем программу метода исключения для функции плотности распределения вероятности, приведенной на рисунке 6.
Пусть rrsch1 и rrsch2 -- функции, независимо осуществляющие генерацию равномерно распределенных в интервале [0,1] случайных чисел, p(x) - функция плотности распределения вероятности (10).
function generator: real;
const a=1; b=9; h=1/4;
var x,y: real;
begin
repeat
x := a+rrsch1*(b-a);
y := h*rrsch2;
until y < p(x);
generator := x;
end;
2.3 Оценка качества последовательности случайных чисел
Оценка качества последовательности случайных чисел с заданным законом распределения вероятности проводится методами, приведенными в п. 1.4. Аналогичным образом строится гистограмма для теоретической и экспериментальной последовательности случайных чисел. Теоретическое число случайных чисел, которое должно попасть в каждый интервал гистограммы, находится по формулам (2) и (3). Вероятность попадания числа в интервал (формула (2)) определяется по функции распределения вероятности (1). После этого вычисляется критерий ч2 и по таблице находится вероятность того, что генератор создает случайные числа с заданным законом распределения.
2.4 Практические советы по выполнению работы
Организация программы. При создании программ генераторов случайных чисел не следует записывать последовательности {xi} или {ui} в массив, сохраняя случайные числа для дальнейшей обработки. Во многих трансляторах языков программирования максимально допустимая длина массива недостаточно велика. Целесообразно организовать программу в виде цикла, в котором каждое случайное число заносится в гистограмму. Гистограмма экспериментального распределения случайных чисел является результатом работы генератора случайных чисел.
Преобразование области значений равномерно распределенных случайных чисел. Пусть {u(t)} - последовательность случайных чисел, равномерно распределенных на интервале [0, 1). Необходимо получить последовательность случайных чисел {u[a,b](x)}, равномерно распределенных на интервале [a, b). Преобразование проводится по следующей формуле
Операция взятия остатка от деления в С. В языке С существует бинарная операция взятия остатка от деления, аналогичная операции mod в языке Паскаль. Она обозначается знаком процента, например 25 % 10 (равно 5) или a % m (остаток от деления a на m).
Подсчет количества попаданий в интервалы гистограммы. Очевидно, что для интервала от A до B, разбитого на L равных отрезков, нумеруемых с нуля, номер отрезка n, которому принадлежит число x из интервала [A, B] определяется по формуле
,
где квадратные скобки означают округление до ближайшего меньшего целого. В связи с этим нет никакой необходимости применять для этой цели в программе цикл перебора границ всех L отрезков.
Вычисление коэффициента 2. При реализации программы на языке С следует помнить, что операция деления для целых чисел дает целый результат (в Паскале целочисленное деление обозначается оператором div, и поэтому такой проблемы не возникает). В связи с этим при подсчете значения критерия ч2можно получить неверный (сильно заниженный) результат, если объявить все участвующие в расчете переменные целыми и проводить целочисленное деление. Целое значение 2 должно настораживать, так как обычно является следствием этой ошибки.
3. ЗАДАНИЕ К ЛАБОРАТОРННЫМ РАБОТАМ
Лабораторная работа 1
· Построить генератор случайных чисел с равномерным законом распределения на интервале [0,1) по методу середин квадратов или мультипликативного датчика в соответствии с заданием. Написать и отладить программу, реализующую генератор на языке Паскаль или Си. Получить выборку неповторяющихся псевдослучайных чисел объемом не меньше 10 000.
· Построить гистограммы для теоретического и экспериментального распределения. Проверить согласие распределений по критерию ч2.
· Определить период генератора случайных чисел. Если он меньше 6000, то продолжить работу программы с новыми исходными данными. Провести анализ последовательности случайных чисел по критерию Пирсона.
Лабораторная работа 2
· Построить генератор случайных чисел с заданным законом распределения по методу обратной функции или исключения в соответствии с заданием. Написать и отладить программу, реализующую генератор на языке Паскаль или Си, взяв за основу предыдущую программу. Получить выборку псевдослучайных чисел.
· Построить гистограммы для теоретического и экспериментального распределения. Проверить согласие распределений по критерию ч2. Отчет должен включать:
1. Фамилию, номер группы, номер варианта студента.
2. Формулировку задания.
3. Параметры исследуемой последовательности из задания.
4. Текст программы. Генератор должен быть реализован в виде функции языка программирования. В программе использовать только целочисленные операции для расчета вспомогательной последовательности целых чисел.
5. Результаты анализа генератора.
6. Вывод о достигнутой или не достигнутой цели работы.
Таблица вариантов задания для группы А4 -
№ |
Метод для генератора случайных чисел с равномерным распределением на интервале [0,1) |
Метод для генератора случайных чисел с заданным распределением на интервале [a, d) |
Вариант функции плотности распределения |
a |
b |
c |
d |
|
1 |
Середин квадратов |
Обратной функции |
1 |
0 |
1 |
4 |
6 |
|
2 |
Середин квадратов |
Исключения |
2 |
0 |
2 |
4 |
6 |
|
3 |
Середин квадратов |
Обратной функции |
3 |
0 |
1 |
3 |
5 |
|
4 |
Середин квадратов |
Исключения |
4 |
0 |
2 |
3 |
6 |
|
5 |
Середин квадратов |
Обратной функции |
5 |
0 |
1 |
4 |
5 |
|
6 |
Середин квадратов |
Исключения |
6 |
0 |
2 |
3 |
5 |
|
7 |
Мультипликат. датчик |
Обратной функции |
1 |
0 |
1 |
4 |
6 |
|
8 |
Мультипликат. датчик |
Исключения |
2 |
0 |
2 |
4 |
6 |
|
9 |
Мультипликат. датчик |
Обратной функции |
3 |
0 |
1 |
3 |
5 |
|
10 |
Мультипликат. датчик |
Исключения |
4 |
0 |
2 |
3 |
6 |
|
11 |
Мультипликат. датчик |
Обратной функции |
5 |
0 |
1 |
4 |
5 |
|
12 |
Мультипликат. датчик |
Исключения |
6 |
0 |
2 |
3 |
5 |
|
13 |
Середин квадратов |
Обратной функции |
1 |
1 |
2 |
3 |
4 |
|
14 |
Середин квадратов |
Исключения |
2 |
1 |
3 |
4 |
5 |
|
14 |
Середин квадратов |
Обратной функции |
3 |
1 |
2 |
4 |
6 |
|
16 |
Середин квадратов |
Исключения |
4 |
1 |
3 |
4 |
6 |
|
17 |
Середин квадратов |
Обратной функции |
5 |
1 |
2 |
3 |
6 |
|
18 |
Середин квадратов |
Исключения |
6 |
1 |
3 |
5 |
6 |
|
19 |
Мультипликат. датчик |
Обратной функции |
1 |
1 |
2 |
3 |
4 |
|
20 |
Мультипликат. датчик |
Исключения |
2 |
1 |
3 |
4 |
5 |
|
21 |
Мультипликат. датчик |
Обратной функции |
3 |
1 |
2 |
4 |
6 |
|
22 |
Мультипликат. датчик |
Исключения |
4 |
1 |
3 |
4 |
6 |
|
23 |
Мультипликат. датчик |
Обратной функции |
5 |
1 |
2 |
3 |
6 |
|
24 |
Мультипликат. датчик |
Исключения |
6 |
1 |
3 |
5 |
6 |
|
25 |
Середин квадратов |
Обратной функции |
1 |
0 |
2 |
4 |
6 |
Таблица вариантов задания для группы А12 -
№ |
Метод для генератора случайных чисел с равномерным распределением на интервале [0,1) |
Метод для генератора случайных чисел с заданным распределением на интервале [a, d) |
Вариант функции плотности распределения |
a |
b |
c |
d |
|
1 |
Середин квадратов |
Обратной функции |
1 |
1 |
2 |
4 |
6 |
|
2 |
Середин квадратов |
Исключения |
2 |
1 |
2 |
4 |
6 |
|
3 |
Середин квадратов |
Обратной функции |
3 |
0 |
1 |
4 |
5 |
|
4 |
Середин квадратов |
Исключения |
4 |
0 |
1 |
3 |
6 |
|
5 |
Середин квадратов |
Обратной функции |
5 |
0 |
1 |
3 |
5 |
|
6 |
Середин квадратов |
Исключения |
6 |
0 |
1 |
3 |
6 |
|
7 |
Мультипликат. датчик |
Обратной функции |
1 |
0 |
1 |
5 |
6 |
|
8 |
Мультипликат. датчик |
Исключения |
2 |
0 |
2 |
5 |
6 |
|
9 |
Мультипликат. датчик |
Обратной функции |
3 |
1 |
2 |
3 |
5 |
|
10 |
Мультипликат. датчик |
Исключения |
4 |
1 |
2 |
3 |
6 |
|
11 |
Мультипликат. датчик |
Обратной функции |
5 |
0 |
2 |
4 |
5 |
|
12 |
Мультипликат. датчик |
Исключения |
6 |
1 |
2 |
3 |
5 |
|
13 |
Середин квадратов |
Обратной функции |
1 |
1 |
3 |
4 |
6 |
|
14 |
Середин квадратов |
Исключения |
2 |
1 |
2 |
4 |
5 |
|
14 |
Середин квадратов |
Обратной функции |
3 |
1 |
2 |
4 |
5 |
|
16 |
Середин квадратов |
Исключения |
4 |
1 |
2 |
4 |
6 |
|
17 |
Середин квадратов |
Обратной функции |
5 |
0 |
2 |
4 |
6 |
|
18 |
Середин квадратов |
Исключения |
6 |
0 |
2 |
5 |
6 |
|
19 |
Мультипликат. датчик |
Обратной функции |
1 |
1 |
3 |
5 |
6 |
|
20 |
Мультипликат. датчик |
Исключения |
2 |
1 |
3 |
4 |
5 |
|
21 |
Мультипликат. датчик |
Обратной функции |
3 |
1 |
3 |
4 |
6 |
|
22 |
Мультипликат. датчик |
Исключения |
4 |
0 |
3 |
4 |
6 |
|
23 |
Мультипликат. датчик |
Обратной функции |
5 |
0 |
2 |
3 |
6 |
|
24 |
Мультипликат. датчик |
Исключения |
6 |
1 |
2 |
5 |
6 |
|
25 |
Середин квадратов |
Обратной функции |
1 |
1 |
2 |
3 |
6 |
Варианты функции распределения плотности вероятности.
Размещено на Allbest.ru
...Подобные документы
Проектирование датчика случайных чисел, пригодного для моделирования случайной последовательности с заданным законом распределения. Методы моделирования. Разработка алгоритма и программы датчика. Исследование свойств выработанной им последовательности.
лабораторная работа [124,2 K], добавлен 15.06.2010Анализ способов построения генераторов случайных чисел для криптографических задач. Анализ генератора случайных чисел на основе магнитометров. Анализ статистических свойств двоичных последовательностей, полученных путем квантования данных магнитометра.
дипломная работа [2,5 M], добавлен 06.05.2018Способы получения случайных чисел в программировании и их использование для решения ряда задач. Принцип действия и тестирование работы генератора случайных чисел в Borland C++, его преимущества. Генерация одномерной и двумерной случайной величины.
лабораторная работа [105,4 K], добавлен 06.07.2009Применение случайных чисел в моделировании, выборке, численном анализе, программировании и принятии решений. Понятие равномерного распределения вероятности. Способы получения последовательности. Правила выбора модуля. Критерий Колмогорова-Смирнова.
курсовая работа [1,3 M], добавлен 17.03.2011Написание программы для генерации случайных чисел, в которой реализуются возможности генерации абсолютно случайных чисел. Приложение на языке С/С++. Описание узла, содержащего данные; функций и методов работы; чтения данных из памяти и вывода их на экран.
курсовая работа [172,4 K], добавлен 23.05.2012Формирование устойчивой последовательности псевдослучайных чисел с использованием метода "середины квадрата". Разработка программы для определения среднего значения чисел, среднего значения квадратов чисел и дисперсии для последовательности из 20 чисел.
лабораторная работа [1,4 M], добавлен 21.01.2015Структура и функции генератора случайных чисел. Методы предельного уменьшения ошибки второго рода. Усиление шумового сигнала. Его дискретизация по времени и аналого-цифровое преобразование. Формирование случайной последовательности и ее корреляция.
курсовая работа [299,4 K], добавлен 11.12.2014Основные элементы системы массового обслуживания, ее модель, принципы и задачи работы. Выбор входных распределений. Построение генераторов случайных чисел. Логика работы программы, планирование эксперимента. Результаты моделирования и рекомендации.
курсовая работа [2,5 M], добавлен 05.11.2009Характеристика вероятностного алгоритма и особенности его использования. Принцип работы и назначение генератора случайных чисел, сущность псевдослучайных чисел. Рассмотрение и реализация метода середины квадрата, разработка алгоритма и его кодирование.
курсовая работа [50,3 K], добавлен 18.09.2009Моделирование работы генератора случайных двоичных чисел с ограниченной последовательностью 0 и 1, подчиняющегося равномерному закону распределения, заданному с помощью модели Гильберта. Представление программного решения задачи средствами языка С++.
лабораторная работа [857,7 K], добавлен 05.06.2011Основные подходы при создании Windows приложений. Изучение навыков работы с 2D графикой в Windows приложениях. Методы генерации псевдослучайных чисел. Разработка игры "Сапер" с расположением мин на основе нескольких методов генерации случайных чисел.
курсовая работа [63,2 K], добавлен 18.02.2009Программа для формирования и просмотра команды для олимпиады по программированию. Генератор случайных чисел в Borland C++, методы их получения. Линейный конгруэнтный метод. Метод Фибоначчи, вихря Мерсенна. Тестирование псевдослучайных последовательностей.
курсовая работа [93,5 K], добавлен 27.09.2014Выбор и оценка входных распределений. Построение генераторов случайных чисел. Анализ полученных результатов. Логика работы и особенности разработки программы. Составление блок-схем, пользовательского интерфейса. Стратегия и тактика планирования.
курсовая работа [1,5 M], добавлен 24.06.2013Применение метода имитационного моделирования с использованием генератора случайных чисел для расчета статистически достоверных переменных. Создание программы на языке GPSS. Результаты моделирования диспетчерского пункта по управлению транспортом.
курсовая работа [399,9 K], добавлен 28.02.2013Исследование разрешающей способности сканирующего туннельного микроскопа при сканировании исследуемой поверхности острием иглы конусообразной формы. Листинг программы и построение СТМ-профилограмм нанообъектов. Тестирование генератора случайных чисел.
курсовая работа [634,0 K], добавлен 12.01.2014Понятие и особенности организации технологии CUDA, принципы реализации алгоритма с его помощью. Генерация случайных чисел. Оценка производительности исследуемой технологии, специфика построения графических программ на основе, преимущества использования.
контрольная работа [102,7 K], добавлен 25.12.2014Понятие алгоритма, свойства, история его исследования. Метод генерации случайных чисел. Концепция (теория) экспертных систем. Нерешаемая комбинация, предложенная Ноем Чепменом. Сущность и цель игры "пятнашки". Моделирование эвристических алгоритмов.
курсовая работа [339,5 K], добавлен 08.04.2014Общие сведения об алгоритмах. Свойство и этапы построения алгоритма. Нисходящее проектирование программ. Основные алгоритмические структуры. Принципы структурной алгоритмизации. Массивы случайных чисел. Ввод исходных данных. Определение и вывод данных.
методичка [435,3 K], добавлен 09.12.2014Некоторые сведения теории вероятностей. Математическое ожидание, дисперсия. Точность оценки, доверительная вероятность. Сущность метода Монте-Карло. Генераторы случайных чисел. Вычисление кратных интегралов. Описание пользовательского интерфейса.
курсовая работа [301,5 K], добавлен 08.11.2013Преобразование чисел из естественной формы в нормализованную. Алгоритм нормализации числа. Способы кодирования чисел и действия над ними. Особенности прямого, дополнительного, смещенного и обратного кода. Понятие вещественных чисел, их представление.
презентация [42,6 K], добавлен 14.06.2011