1.3.2. Алгоритмы получения псевдослучайных чисел 5
Проведем случайный эксперимент, в результате которого наблюдаем или получаем случайное число. Используя это случайное число, по какой-либо заданной формуле преобразуем его в другое случайное число, затем повторяем эту итерацию, тогда в конечном счете получаем ряд случайных чисел. Таким образом, полученные случайные числа называются псевдослучайными числами. Отметим, что при использовании формул для получения случайных чисел через какое-то число испытаний начинается повторение случайных чисел, т.е. псевдослучайные числа периодичны, иначе говоря, запас псевдослучайных чисел ограничен. Вопрос состоит только в том, каков период псевдослучайных чисел? Это зависит от выбранного алгоритма выработки псевдослучайных чисел.
Существует достаточное количество способов получения псевдослучайных чисел (см. в работах [5, 13, 22]). Рассмотрим без доказательства несколько способов получения псевдослучайных чисел.
-
Последовательность псевдослучайных чисел xi, i= 1, 2, ..., можно получить с помощью способа Лемера, или как говорят иногда методом вычетов. Алгоритм этого способа состоит в следующем [70]:
-
Первое случайное целое число r1 выбирается между числами 0 и P, где число Р выбирается заранее.
-
Умножаем это случайное число на выбранный заранее постоянный множитель М.
-
К полученному произведению прибавляем некоторое выбранное заранее целое число К.
-
Результат первых трех шагов делим на Р и получившийся остаток выбираем в качестве следующего случайного числа. Формула представленного алгоритма имеет следующий вид: ri+1 = (M ri + К) mod P, i = 1, 2, ... Выбор различных значений М, К и Р дает различные периоды псевдослучайных последовательностей. Доказано, что лучше всего использовать целые числа. При К=0, а Р = 2 N наибольший период достигается при М=3+8*I или М = 5+8*I. В качестве начального числа r1 желательно выбрать нечетное число. При достаточно больших числах М полученный ряд производит впечатление случайного ряда.
-
Для получения случайного числа можно использовать также другой алгоритм Лемера:
-
Берем случайное число и умножим его 102*k (0 =*102*k )
-
Возводим в квадрат 0 2
-
Берем последние 2*k от 0 2
-
Умножим на постоянное любое число С, получаем новое число 1.
-
Берем первые 2*k цифры от 1, тогда получим число 2.
-
Берем первые 2*k от 0 2
-
Умножим на постоянное любое число С, получаем новое число 3.
-
Берем последние 2*k цифры от 3 , тогда получим число 4.
-
Случайное число = (1+2)/(2*102*k).
-
-
Для генерирования эталонных псевдослучайных чисел можно также воспользоваться методом середины квадратов (метод Неймана), суть которого заключается в следующем: пусть тогда , берем средние четыре цифры и составим , тогда Следовательно, и т.д., т.е. каждое последующее число образуется возведением предыдущего в квадрат и отбрасыванием цифр с обоих концов.
-
Следующий класс генераторов случайных чисел предложен А.Зейманом и Дж.Марсалиа. Генераторы этого типа основаны на использовании последовательности Фибоначчи. Пример такой последовательности {0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, ….}. Рекурсивное описание последовательности Фибоначчи имеет вид , т.е. каждый последующий член равен сумме предыдущих. Если мы берем только последнюю цифру каждого числа в последовательности, то получим последовательность чисел {0, 1, 1, 2, 3, 5, 8, 3, 1, 4, 5, 9, 4 ….}. Если эта последовательность применяется для начального заполнения массива большой длины, то используя этот массив, можно создать генератор случайных чисел Фибоначчи с запаздыванием, где складываются не соседние, а удаленные числа.
- Глава I. Метод Монте-Карло и Понятия теории вероятностей
- Классификация вероятностно-статистических методов решения прикладных задач
- §1.2. Некоторые понятия и теоремы теории вероятностей
- Понятия теории вероятностей
- 1.2.2. Основные теоремы теории вероятностей 4
- Локальная теорема
- Интегральная теорема
- Закон Больших Чисел
- Центральная предельная теорема (цпт)
- Эта теорема носит название «Центральная предельная теорема» .
- 1.2.3. Оценка погрешности математического ожидания исследуемой величины
- 1.3. Генераторы, алгоритмы получения и преобразования случайных чисел
- 1.3.1. Получение случайных чисел с помощью случайного эксперимента
- 1.3.2. Алгоритмы получения псевдослучайных чисел 5
- 1.3.3. Понятие эталонной 6, случайной величины
- 1.3.4. Преобразование случайных величин 7
- 1.3.5. Генераторы псевдослучайных чисел на эвм
- 1.3.6. Использование таблицы дискретных случайных чисел
- 1.4. Недостатки и достоинства аналитических, приближенных методов решения математических задач, в том числе и метода Монте-Карло
- Глава II. Вероятностное моделирование математических задач
- 2.1. Общая теория решения системы линейных уравнений 8
- 2.2. Вычисление интегралов способом среднего
- Технология вычисления интеграла способом среднего
- Нахождение определенных интегралов способом «зонтика» Неймана
- 4. Задания на моделирование
- 2.4. Вычисление значения числа
- 2.5. Решение уравнений эллиптического типа (задача Дирихле)
- Глава III. Имитационное моделирование физических процессов и явлений
- 3.1. Имитационное моделирование задач нейтронной физики
- 3.1.1. Задача имитационного моделирования прохождения нейтронов через пластинку
- 3.1.2. Моделирование сорта ядра и вида взаимодействия нейтрона с ядром
- 3.1.3. Решение задачи розыгрыша типа взаимодействия и сорта ядра имитационным моделированием
- 1. Вычисление микросечений водорода
- 2. Вычисление микросечений кислорода
- 3. Вычисление микросечений бора
- 4. Вычисление полного микросечения
- 5.Розыгрыш сорта ядра
- 6. Розыгрыш типа взаимодействия
- 7.Определение полного макросечения
- 3.1.4. Определение направления и энергии частиц после рассеяния
- 3.1.5. Моделирование длины свободного пробега
- 3.1.6. Имитационное моделирование траектории движения нейтронов через пластинку (двухмерный случай)
- 5. Задания на моделирование:
- 3.2. Имитационное моделирование прохождения
- 6. Задания на моделирование:
- 7. Результаты моделирования
- 3.3. Имитационное моделирование распространения упругих волн в пористых средах (задача геофизики)
- Результаты моделирования
- 3.4. Имитационное моделирование явления спонтанного излучения атомов
- 3. Задания на моделирование:
- Моделирование явления спонтанного излучения многоатомной системы (сверхизлучения Дике)
- 2. Задания на моделирование:
- Глава IV. Методы компьютерного моделирования в термодинамике
- 4.1. Метод молекулярной динамики
- 6. Задания на моделирование:
- 7. Результаты моделирования
- 4.2. Метод броуновской динамики
- 2. Алгоритм метода броуновской динамики
- 3. Расчет макроскопических параметров
- 4. Задания на моделирование:
- 4. 3. Имитационный метод моделирования броуновских траекторий
- Литература