Я пытаюсь генерировать случайные поступления через распределение Пуассона для своего проекта. Часть кода:
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <cmath>
#include <random>
#include <ctime>
int nextTime(double lambda,int timeslots,int PU_number);
int main()
{
srand(time(0));
//some code
nextTime(4,time_slots,PU_number);
}
int nextTime(double lambda,int timeslots,int PU_number)
{
int mat[PU_number][timeslots];
std::default_random_engine generator;
std::poisson_distribution<int> distribution(lambda);
int number;
int total=0;
for(int i=0; i< PU_number;i++)
{
total=0;
for(int j=0;j<timeslots;j++)
{
number = distribution(generator);
total+=number;
mat[i][j]=total;//another matrix, not relevant here
cout<<number<<" ";
}
cout<<endl;
}
return 0;
}
Приведенный выше код всегда выдает одни и те же числа. что здесь не так?
srand(time(0));
только один раз в main. - person πάντα ῥεῖ   schedule 31.01.2015generator.seed(NEWseed);
, которое сбросит начальное значение генератора на значение NEWseed. - person Kamil S Jaron   schedule 28.04.2015