Генерация даты прибытия Пуассона с использованием C ++ и повышение

Я занимаюсь симуляцией программы транспортной сети. Я хочу смоделировать прибытие пассажиров на автобусную станцию, у которой есть распределение яда скорости ямбы.

На самом деле, в моей концепции программы мне нужны два списка дат прибытия: первый считается ожидаемыми датами прибытия пассажиров, а второй — реальным эффективным прибытием пассажиров.

Для генерации времени прибытия я использовал следующий код с использованием boost:

<blink>

double lambda(Lambda1);  //mean of Poisson distr
boost::mt19937 rnd_gen;   //Mersenne Twister generator

typedef boost::variate_generator<
boost::mt19937, boost::poisson_distribution<>
> rnd_poisson_t;

rnd_poisson_t rnd_poisson( rnd_gen,
boost::poisson_distribution<>( lambda ) );

rnd_poisson = rnd_poisson_t( rnd_gen,
boost::poisson_distribution<>( lambda ));for(int i = 0; i <size;i++)
{
value=rnd_poisson();
tab[i]= rnd_poisson();
i++;
}

</blink>

Проблема в том, что если я использую этот код для разных списков, чтобы сгенерировать даты прибытия для одной и той же лямбды и того же размера, то всегда будут генерироваться одинаковые числа.

Как мне создать определенный вариант в этом поколении, чтобы два сгенерированных списка были немного разными?

2

Решение

Перезапустите генератор случайных чисел с текущим временем, когда вы его используете. В большинстве случаев это приведет к другой последовательности. Как вы узнали:

rnd_gen(static_cast<unsigned int>(std::time(0)));
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]