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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
taras atavin
3570 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
#1

Случайные числа с заданным распределением - C++

31.07.2015, 06:19. Просмотров 1195. Ответов 21
Метки нет (Все метки)

Что то не соображу, как сделать генератор случайных чисел с плавающей запятой, имеющий заданное, например нормальное распределение. Синтаксис
C++
1
x=NormRandom(M, D);
, где M - математическое ожидание, D - дисперсия. Понятно, что числа будут псевдослучайными, а не истинно случайными, но требуется хоты бы имитация нормального распределения с заданными параметрами.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.07.2015, 06:19
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Случайные числа с заданным распределением (C++):

генерация случайных чисел с заданным распределением вероятности - C++
Здравствуйте. Нужна ваша помощь. Необходим алгоритм или же пример. где реализована генерация случайных чисел с заданным распределением...

Нужно чтобы случайные числа вставали в конец массива,а не удаляли числа - C++
#include <iostream> using namespace std; void main() { setlocale(LC_ALL, "Russian"); int n; // кол-во элементов массива ...

Случайные числа - C++
Создать матрицу случайных чисел, если max элемент располагается левее минимального то тогда сложить элементы левой половинки матрицы.

Случайные числа - C++
Привет, мне надо наполнить массив случайными числами но толька чтоб они не повторялись, подскажыте как ето сделать.

случайные числа - C++
как заполнить массив случайными числами например от -50 до 50 void generate(int mas,int n){ for(int i=0;i<n;i++) mas=(rand()%50)-50; ...

Случайные числа - C++
Всем привет! Мне нужно сгенерировать действительное случайное число в диапазоне от нуля до 1. Читал вот это:...

21
taras atavin
3570 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
31.07.2015, 08:31  [ТС] #16
Цитата Сообщение от Renji Посмотреть сообщение
И декларация всего одна.
Вижу, что одна. Но это же не бейсик, где можно один и тот же массив декларировать двести раз одной и той же строчкой по разу на каждом шагу цикла и он будет динамически менять свою размерность. Сколько здесь величин?
0
Renji
1963 / 1361 / 307
Регистрация: 05.06.2014
Сообщений: 3,893
31.07.2015, 08:47 #17
Цитата Сообщение от taras atavin Посмотреть сообщение
Сколько здесь величин?
Величина в смысле "объект в памяти" одна. На пальцах:
1) В начале итерации в стеке выделяется память под normal_distribution.
2) Вызывается функция "конструктор", которой передается указатель на память normal_distribution.
3) В конце итерации вызывается функция "деструктор", которой передается указатель на память normal_distribution.
4) Выделенная под normal_distribution память освобождается.
5) goto 1.
Потом приходит оптимизатор и путем особой оптимизирующей магии выкидывает пункты 1, 3 и 4 нафиг. А пункт 2 инлайнит, заменяя вызов конструктора прямой подстановкой его кода. Результат как если бы вы объявили переменную вне цикла.
0
taras atavin
3570 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
31.07.2015, 09:15  [ТС] #18
Цитата Сообщение от Renji Посмотреть сообщение
1) В начале итерации в стеке выделяется память под normal_distribution.
2) Вызывается функция "конструктор", которой передается указатель на память normal_distribution.
3) В конце итерации вызывается функция "деструктор", которой передается указатель на память normal_distribution.
4) Выделенная под normal_distribution память освобождается.
5) goto 1.
Ну просто отлично. На каждом шагу цикла дёргать выделение/освобождение памяти. Причём, помимо роста/сокращения стека при вызовах функций, которые ни куда не деваются. Не смешно.
0
Renji
1963 / 1361 / 307
Регистрация: 05.06.2014
Сообщений: 3,893
31.07.2015, 09:19 #19
Цитата Сообщение от taras atavin Посмотреть сообщение
Ну просто отлично. На каждом шагу цикла дёргать выделение/освобождение памяти.
1) Это "выделение-освобождение" - одна операция вычитания/сложения. Колоссальные расходы времени, ага.
2) Еще раз, оптимизатор ее выкинет.
0
taras atavin
3570 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
31.07.2015, 10:53  [ТС] #20
Что это:
Цитата Сообщение от zss Посмотреть сообщение
RAND_MAX
?

Добавлено через 36 секунд
Цитата Сообщение от Renji Посмотреть сообщение
1) Это "выделение-освобождение" - одна операция вычитания/сложения. Колоссальные расходы времени, ага.
Без которых можно обойтись. + сама работа конструктора и деструктора.

Добавлено через 18 минут
C:\Projects\Test11\Test11\NormalRanodm.cpp|6|error: 'rand' was not declared in this scope|
.....................
0
Renji
1963 / 1361 / 307
Регистрация: 05.06.2014
Сообщений: 3,893
31.07.2015, 11:07 #21
Цитата Сообщение от taras atavin Посмотреть сообщение
Без которых можно обойтись. + сама работа конструктора и деструктора.
Последний раз, для тугих на ухо - оптимизатор это знает и убирает постоянное выделение-освобождение из кода программы.
0
taras atavin
3570 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
31.07.2015, 11:18  [ТС] #22
Если rand и srand вызываются в разных модулях, то будет ли последовательность инициирована функцией srand?
0
31.07.2015, 11:18
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.07.2015, 11:18
Привет! Вот еще темы с ответами:

Случайные числа - C++
как выполнить генератор случайных чисел генерировал любое число и присваивал число переменной

Случайные числа в C++ - C++
нужно присвоить переменной числа от -50 до 50, как сделать?

Случайные числа - C++
Написать функцию, которая подсчитует сколько раз заданое число встречается в последовательности N случайных чисел.

случайные числа - C++
rand() в VS имеет диапазон от 0 до 32768? даже изменение RAND_MAX ничего не повысит верхний уровень?


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

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

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