生成指数分布数,但实时

时间:2015-12-04 09:38:56

标签: c++

我有一个任务,用n个工人实现无限FIFO队列的模拟。

客户通过指数分布产生时间,并且工作人员的工作时间由泊松分布产生。有一点我不明白。第一次,为了测试,我用另外两种算法编写了我的应用程序 - 我只是生成1到5之间的随机数(工作人员随机工作1-5秒),客户端的速率相同。

现在,我正面临这个问题:

这些值是:指数和泊松可以在一个循环中逐个生成 - 例如:

  1. 我生成一个值
  2. 让工人为“价值”工作。时间
  3. 我生成第二个指数值更大的值
  4. 或者这只能通过在开头生成一个数组来实现?

    我找到了这个算法:

    #include <random>
    #include <ctime>
    #include <iostream>
    
    int main()
    {
           std::mt19937 rng( std::time(0) ) ;
           std::exponential_distribution<double> distrib(2.0) ;
           for( int i = 0 ; i < 10 ; ++i ) std::cout << std::fixed <<     distrib(rng) << '\n' ;
    }  
    

    它会产生数字,但我不确定它是否会起作用。 (而且我不知道如何产生更大的价值)。

0 个答案:

没有答案