С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

C++

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.91
Olya13254
0 / 0 / 0
Регистрация: 27.10.2010
Сообщений: 29
#1

Конгруэнтные генераторы псевдослучайных последовательностей - C++

01.10.2012, 21:51. Просмотров 1518. Ответов 0
Метки нет (Все метки)

Ниже приведен генератор псевдослучайных последовательностей, который объединяет два линейных конгруэнтных генератора с периодами 231-85 и 231-249.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
/* "long" должно быть 32-битовым целым
static long s1 = 1;
static long s2 = 1;
 
/* MODMULT (a, b, c, m, s) рассчитывает s*b mod m при условии, что m = a*b+c и 0<=c<m
#define MODMULT(a, b, c, m, s) q = s/a; s = b*(s-a*q)-c*q; if (s<0) s+=m;
 
/* Возвращает действительное псевдослучайное значение в диапазоне (0,1) */
double CombLCG (void)
{
long q;
long z;
 
MODMULT(53668, 40014, 12211, 2147483563L, s1)
MODMULT(52774, 40692, 3791, 2147483399L, s2)
 
z = s1 - s2;
 
if(z<1)
z += 2147483562;
 
return z*4.656613e-10;
}
 
/* Инициализирует CombLCG, вызывается один раз перед использованием */
void InitLCG(long InitS1, long InitS2)
{
s1 = InitS1;
s2 = InitS2;
}
Этот генератор работает при условии, что компьютер способен представить все целые числа в диапазоне от -231+85 до 231-249. Переменные s1 и s2 глобальные и содержат текущее состояние генератора. Перед вызовом CombLCG() необходимо инициализировать состояние генератора вызовом InitLCG() и передать начальные значения s1 и s2. Для s1 начальное значение берётся из диапазона [1, 2147483562], а для s2- из диапазона [1, 2147483398]. Период генератора близок к 1018.
Необходимо провести серию экспериментов (не менее 5), изменяя длину последовательности и начальные значения s1, s2. Для каждого эксперимента вычислить математическое ожидание и дисперсию. Подскажите, как реализовать, пожалуйста. Заранее благодарю.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.10.2012, 21:51
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Конгруэнтные генераторы псевдослучайных последовательностей (C++):

Словари,генераторы слов,время - C++
Всем привет.Хотел бы очень получить ответ на следующие вопрос:1)Можно ли к программе каким то образом подключить словарь и сделать так...

Генератор псевдослучайных чисел - C++ Builder
Люди, помогите срочно, пожалуйста! Нужен генератор псевдослучайных чисел в интервале от 0 до 1! Есть ли стандартная функция в Билдере?...

C++ Builder 5, шифрование с использованием псевдослучайных чисел - C++ Builder
FILE *in, *out; char buf, binccur, binccur1, binchyp; char binc; binc='0'; binc='0'; binc='0'; binc='0'; ...

Генератор псевдослучайных чисел с использованием своей формулы - C++ Builder
Ребят выручайте) курсовая через 2 недели, не готов и не шарю) нужна курсовая на тему Генератор псевдослучайных чисел (прога должна быть...

Запись последовательности псевдослучайных чисел в файл - Visual C++
как записать последовательность псевдослучайных чисел в файл ?

Генераторы случайных чисел - C++
Задание такое: Реализовать иерархию понятий: гсч с равномерным распределение, гсч с нормальным распределение и гсч в качестве абстрактного...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.10.2012, 21:51
Привет! Вот еще темы с ответами:

Генерация - псевдослучайные данные. Линейные конгруэнтные генераторы - Python
добрый день, Пытаюсь выполнить задание. 1. Используя метод вычетов, сгенерировать последовательность из 1000 псевдослучайных чисел....

Генераторы псевдослучайных чисел в распределенных сетях · - Безопасность
Здравствуйте.В университете задали написать статью на тему &quot;Применение генераторов псевдослучайных чисел в распределенных сетях&quot;. Не могли...

Генератор псевдослучайных последовательностей - Java SE
Создаю еще одну тему т.к в этом разделе онлайн больше. Генератор псевдослучайных последовательностей (одно целое число в...

Предсказание псевдослучайных последовательностей - Matlab
Добрый день, эксперты и все обучающиеся Необходима ваша помощь, надеюсь на вашу доброту :) Есть такая задачка, &quot;пердсказание...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.