我有一个任务,用n个工人实现无限FIFO队列的模拟。
客户通过指数分布产生时间,并且工作人员的工作时间由泊松分布产生。有一点我不明白。第一次,为了测试,我用另外两种算法编写了我的应用程序 - 我只是生成1到5之间的随机数(工作人员随机工作1-5秒),客户端的速率相同。
现在,我正面临这个问题:
这些值是:指数和泊松可以在一个循环中逐个生成 - 例如:
或者这只能通过在开头生成一个数组来实现?
我找到了这个算法:
#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' ;
}
它会产生数字,但我不确定它是否会起作用。 (而且我不知道如何产生更大的价值)。