Я пытаюсь создать случайную функцию "привет мир", основанную на прибытии Пуассона. В приведенном ниже коде я определяю, что среднее значение (Lamda) равно 5. И я хочу, чтобы время истекло от 1 до 5 секунд и отслеживало его.
Основываясь на проекте с открытым исходным кодом, чайка на этом изображении здесь и здесь , я вижу, что в то же время, но другое значение означает, что чем больше это случайные случаи трафика (в моем случае, «привет мир»). Но для моего случая это просто случайное время сна, но число Hello World одинаково.
Как мне реализовать идею, основываясь на изображениях, подобных тому, что я использую выше. Это правильный способ распределения Пуассона для генератора случайных чисел? Я видел алгоритм Пуассона, основанный на Кнут
Спасибо за помощь. Извините за мой плохой английский.
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <limits.h>
#include <string.h>
#include <time.h>
int poisson(double lambda){
int k=0;
double L=exp(-lambda), p=1;
do {
++k;
p *= rand()/(double)INT_MAX;
} while (p > L);
return --k;
}
int main()
{
int i=0;
int val=0;
time_t timer;
char buffer[25];
struct tm* val_time;
/*For time= 0 until time=10*/
for (i=0; i<10; i++)
{
printf("Hello World\n");
/*To print the time*/
time(&timer);
val_time = localtime(&timer);
strftime(buffer, 25, "%Y:%m:%d%H:%M:%S", val_time);
puts(buffer);
sleep(poisson(2)); /*interarrival process*/
}
}