Алгоритм распределения Пуассона для заказов товаров? Здравствуйте.
В тестовом задании столкнулся с требованием реализовать поступление заказов с помощью распределения Пуассона.
К сожалению, раньше с этим не сталкивался, никак не могу понять, как это распределение применить?
Нашел библиотеку MathPHP
Там есть такая функция:// Poisson distribution
$λ = 2; // average number of successful events per interval
$k = 3; // events in the interval
$poisson = new Discrete\Poisson($λ);
$pmf = $poisson->pmf($k);
$cdf = $poisson->cdf($k);
Сама задача:Заказы поступают случайным образом с интервалом 1-30 мин и имеют распределение
Пуассона. Заказ имеет следующие свойства:
1. номер заказа;
2. время поступления (начинается с 0);
3. время готовки (10-30 мин);
....
Сгенерировать N заказов согласно свойствам. (N=10...100);

21 Авг 2019 в 06:05
260 +1
0
Ответы
1

Для реализации поступления заказов с помощью распределения Пуассона с учетом указанных свойств, вы можете использовать следующий алгоритм:

Задайте параметр λ (среднее количество заказов за определенный интервал времени, например, за диапазон от 1 до 30 минут).Создайте экземпляр класса Poisson из библиотеки MathPHP с указанным параметром λ.Для каждого заказа от 1 до N:
a. Сгенерируйте случайное время поступления заказа в интервале от 0 до 30 минут.
b. Сгенерируйте случайное время готовки заказа в интервале от 10 до 30 минут.
c. Сгенерируйте номер заказа.
d. Рассчитайте время выполнения заказа как сумму времени поступления и времени готовки.
e. Сохраните номер заказа, время поступления, время готовки и время выполнения.

Пример кода для генерации N заказов с использованием распределения Пуассона:

use MathPHP\Probability\Distribution\Discrete\Poisson;
$lambda = 2; // среднее количество заказов за интервал времени
$poisson = new Poisson($lambda);
$N = 100; // количество заказов
for ($i = 1; $i <= $N; $i++) {
$time_arrival = mt_rand(0, 30); // случайное время поступления заказа
$cook_time = mt_rand(10, 30); // случайное время готовки заказа
$order_number = $i; // номер заказа
$completion_time = $time_arrival + $cook_time; // время выполнения заказа
// сохраните информацию о заказе, например, в массив или БД
echo "Order $order_number - Time of Arrival: $time_arrival min, Cooking Time: $cook_time min, Completion Time: $completion_time min\n";
}

Этот код поможет вам создать N заказов с учетом указанных свойств и распределения Пуассона. Не забудьте подключить библиотеку MathPHP и настроить окружение для ее использования.

20 Апр в 13:24
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 588 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир