Форум программистов, компьютерный форум CyberForum.ru

Моделирование случайных чисел с экспоненциальным законом распределения - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 73, средняя оценка - 4.82
slavikg
0 / 0 / 0
Регистрация: 03.04.2012
Сообщений: 71
03.04.2012, 00:11     Моделирование случайных чисел с экспоненциальным законом распределения #1
Программирования случайных чисел с экспоненциальным законом распределения. Товарищи помогите пожалуйста.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.04.2012, 00:11     Моделирование случайных чисел с экспоненциальным законом распределения
Посмотрите здесь:

Сгенерировать последовательность 60 случайных чисел с экспоненциальным законом распределения с параметром C++
ГСЧ для равномерного распределения случайных чисел на заданном интервале C++
Написать датчик случайных чисел с таблично заданной функцией распределения C++
[C++] Генератор случайных чисел... закон распределения задан C++
C++ Моделирование случайных величин
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
slavikg
0 / 0 / 0
Регистрация: 03.04.2012
Сообщений: 71
04.04.2012, 22:14  [ТС]     Моделирование случайных чисел с экспоненциальным законом распределения #21
можеш кинуть а то я непонял какой ето последній?)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
04.04.2012, 22:32     Моделирование случайных чисел с экспоненциальным законом распределения #22
Цитата Сообщение от slavikg Посмотреть сообщение
можеш кинуть а то я непонял какой ето последній?)
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
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
 
double getLrand(double l)
{
return -log((double)(rand())/RAND_MAX)/l;
}
 
int main()
{
printf("Enter size of random sample:");
int N;
scanf("%d", &N);
printf("Enter lambda of distribution");
double lambda;
scanf("%lf", &lambda);
srand ( time(NULL) );
while (N>0)
{
 printf("%lf ", getLrand(lambda));
 N=N-1;
}            
getch();
return 0;
}
slavikg
0 / 0 / 0
Регистрация: 03.04.2012
Сообщений: 71
04.04.2012, 23:08  [ТС]     Моделирование случайных чисел с экспоненциальным законом распределения #23
спасибо
Twi7ter
 Аватар для Twi7ter
3 / 3 / 1
Регистрация: 27.03.2013
Сообщений: 147
18.12.2013, 23:38     Моделирование случайных чисел с экспоненциальным законом распределения #24
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Логарифмическая функция распределения
F=1-exp(-lx)
Тебе нужна обратная ей функция. То есть по оси F откладываем случайные числа от 0 до 1 с равномерным распределением, а соответствующие им значения на оси x будут случайными, распределёнными по нужному нам закону.

Функция распределения F=1-exp(-lx)
Обратная ей будет x=ln(1-F)/(-l)
В итоге получаем
F=rand()/RAND_MAX;//нецелочисленное деление
x=ln(1-F)/(-l)
1-F распределена точно так же, как F, поэтому
x=ln(F)/-l=ln( rand()/RAND_MAX )/-l=( ln(rand()) - ln(RANDMAX))/(-l)

Итог:
C
1
2
3
4
#define LOFFSET ln(RAND_MAX)
double getLrand(double l){
   return (ln(rand()+1)-LOFFSET)/(-l);
}
ДО сего поста не мог понять как числа генерить с заданным законом распределения,огромное спасибо)
Sergey7777
7 / 7 / 0
Регистрация: 03.12.2013
Сообщений: 44
21.11.2014, 22:57     Моделирование случайных чисел с экспоненциальным законом распределения #25
А что такое lambda of distribution? Т.е. double lambda;? У наж же ведь экспоненциальный закон распределения? А не какая-то там лямбда.
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
22.11.2014, 10:47     Моделирование случайных чисел с экспоненциальным законом распределения #26
Цитата Сообщение от Sergey7777 Посмотреть сообщение
У наж же ведь экспоненциальный закон распределения?
а теперь напиши мне, какова плотность экспоненциального распределения? Или все формулы из головы вылетели?
Sergey7777
7 / 7 / 0
Регистрация: 03.12.2013
Сообщений: 44
22.11.2014, 15:53     Моделирование случайных чисел с экспоненциальным законом распределения #27
Вот те формула L*exp^(L*x) при x>0, где L-лямбда, но в программе нет такой формулы! Там только такая есть F=1-exp(-lx).

Добавлено через 6 минут
Но F=1-exp(-lx) - это логарифмическая функция распределения, а у нас говорится про экспоненциальный закон распределения.
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
22.11.2014, 17:38     Моделирование случайных чисел с экспоненциальным законом распределения #28
Sergey7777, https://en.wikipedia.org/wiki/Exponential_distribution
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.03.2015, 06:00     Моделирование случайных чисел с экспоненциальным законом распределения
Еще ссылки по теме:

Моделирование случайной величины с заданным законом распределения C++
C++ Написание своего генератора случайных чисел с различными плотностями распределения
Как подобрать последовательность 100 случайных чисел с экспоненциальным законом на C++ C++

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

Или воспользуйтесь поиском по форуму:
Владимирл
0 / 0 / 0
Регистрация: 19.12.2013
Сообщений: 167
30.03.2015, 06:00     Моделирование случайных чисел с экспоненциальным законом распределения #29
slavikg,
Yandex
Объявления
30.03.2015, 06:00     Моделирование случайных чисел с экспоненциальным законом распределения
Ответ Создать тему
Опции темы

Текущее время: 23:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru