код, который я получил от cpluscplus dot com:
unsigned seed = std::chrono::system_clock::now().time_since_epoch().count();
std::default_random_engine generator (seed);
std::poisson_distribution<int> distribution (0.5);
std::cout << "some Poisson-distributed results (mean=0.5): ";
for (int i=0; i<10; ++i)
std::cout << distribution(generator) << " ";
std::cout << std::endl;
среднее значение было 5,2, и я изменил его на 0,5, чтобы сгенерировать 0 или 1. Но иногда он дает 2 или 3. Как я могу ограничить это?
РЕДАКТИРОВАТЬ:
Я прочитал, что вы сказали. Мне нужен пуассон, и он мне нужен как двоичный. Вот почему: я работаю над темой «Зондирование спектра в когнитивных радиосетях». Во всей статье, которую я читаю, авторы говорят: «Я использовал распределение Пуассона для проверки своего исследования». Для людей, которые не знают тему:
В среде существует Основной пользователь (Лицензированный пользователь). И он использует канал время от времени. И есть также вторичные пользователи (нелицензированные пользователи), и они пытаются предсказать временной интервал первичного сервера, чтобы они могли подключиться к каналу, когда первичный выключен. Итак, для этого:
primaryUserTimeslotTable={1,1,1,0} //should be generated with poisson dist. (papers say)
и таким же образом (с тем же средним значением) мы создаем этот массив для каждого когнитивного пользователя.
Лямбда — среднее значение распределения Пуассона, поэтому 0,5 — лямбда.
Не имеет смысла «ограничивать» распределение Пуассона, поскольку среднее значение является просто ожидаемым значением. Вы можете иметь больше или меньше успехов.
Может быть, вы ищете дистрибутив Бернулли?
РЕДАКТИРОВАТЬ:
Я сделал быстрый гугл по «зондированию спектра в когнитивных радиосетях», и похоже, что вы после Пуассоновский точечный процесс. Если у вас есть пуассоновский точечный процесс с лямбдой интенсивности, то события происходят с такой скоростью, что ожидаемое число событий в любом интервале времени составляет лямбда.