使用C 生成泊松到达日期

Generate poisson Arrival date using C++ and boost

本文关键字:日期 使用      更新时间:2023-10-16

我正在执行传输网络的仿真程序。我想模拟乘客的到来,这些乘客的到来的毒药分布lambda。

实际上,在我对程序的概念中,我需要两个到达日期的列表:第一个被视为乘客的预期到达日期,第二个将被视为乘客的真正有效到达。

为了生成时间到达,我确实使用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>

问题是,如果我将此代码用于不同列表来生成同一lambda的到达日期,并且相同的列表大小将始终生成相同的数字。

如何在这一代人中创建一定的变化,以使两个生成的列表有所不同?

每当您使用时,将随机生成器重新播放。大多数情况下,这将产生不同的序列。当您发现:

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