Прошу прощения. Вернулся к старой проблеме с генератором случайных величин по распределению Пуассона.
Задача: Написать генератор IP-пакетов для тестирующего модуля. Задается интенсивность(Мбит/с), допустим 100 Мбит/c, длина пакета — 12000 бит, время моделирования — 1000 мс, время между выдачей dt — 10 мс. По распределению Пуассона варьируется кол-во пакетов на всех dt.
Сделал по следующему алгоритму: 1. Нашел лямбда: lambda = интенсивность(Мбит/с) * dt(мс) / длина_пакета (бит) * all_time(мс); 2. Нашел множество вариаций выпадения кол-ва пакетов k = 0..n: интенсивность (Мбит/с) / длина_пакета(бит); 3. Посчитал для каждого k функцию вероятности: pmf(k) = (lambda * dt)^k * exp (- labmda * dt) / k!; 4. Проинтегрировал трапециями pmf(k) и получил функцию распределения Пуассона для всех k — cdf(k); 5. Сгенерировал случайное число r = 0..1 6. Для каждого отрезка dt нашел наибольшее значение k, при котором cdf(k) <= r; 7. Выдал k пакетов
Почитав книгу по теорверу, похоже на правду.
НО за секунду генератор выдает не требуемые 100 Мбит/с, а все 700-1000. ЧЯДНТ?