2
전송 네트워크의 시뮬레이션 프로그램을하고 있습니다. 나는 속도 람다의 포이즌 분포를 가진 버스 정류장에서 승객의 도착을 시뮬레이션하고 싶다.포아송 생성 C++ 및 부스트를 사용하여 도착 날짜를
실제로 프로그램에 대한 나의 개념에서 나는 도착 날짜 목록 두 개가 필요합니다. 첫 번째 것은 승객의 예상 도착 날짜로 간주되며 두 번째 것은 승객의 실제 도착으로 간주됩니다. 내가 부스트를 사용하여 다음 코드를 사용하여 한 시간에 도착를 생성
:
내가 도착를 생성하는 다른 목록에이 코드를 사용하는 경우 문제가같은 람다와 같은 목록 크기 그것을 위해 날짜
<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>
항상 같은 번호를 생성합니다.
생성 된 두 개의 목록이 약간 다르도록이 세대에서 특정 유사 콘텐츠를 만드는 방법은 무엇입니까?
목록을 만들기 전에 매번 랜덤 제네레이터 ('rnd_gen')를 다시 시드하는 방법은 어떻습니까? 그것은 다른 순서를주는 원인이되지 않을까요? –
팁 주셔서 감사합니다. 실제로 선언에 다음 코드 줄을 추가하십시오. boost :: mt19937 rnd_gen (static_cast (std :: time (0))); 그리고이 함수를 호출 할 때마다 아주 잘 작동합니다. 다시 한번 감사드립니다. –
Shiniga
완전성을 위해, 나는 aswer로서 당신의 결론을 올렸다. –