код, который я получил от cpluscplus точка ком является:генерации двоичных значений с помощью пуассоновского Дистрибутив в C++
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 иногда. Как я могу это ограничить?
EDIT: Я прочитал, что вы сказали. Мне нужен пуассон, и мне он нужен как двоичный. Вот почему: я работаю над темой «зондирование спектра в когнитивных радиосетях». Все бумаги, которые я читал, авторы говорят: «Я использовал распределение пуассонов для проверки своего исследования». Для людей, которые не знают темы: В среде есть Основной пользователь (Лицензированный пользователь). И он использует канал время от времени. И есть также вторичные пользователи (нелицензированные пользователи), и они пытаются предсказать первичный временной интервал, чтобы они могли перейти к каналу, когда основной отключен. Итак, для этого:
primaryUserTimeslotTable={1,1,1,0} //should be generated with poisson dist. (papers say)
и таким же образом (с таким же значением) мы создаем этот массив для каждого когнитивного пользователя.
Вы действительно хотите распространение Пуассона? Я не думаю, что большие значения из распределения Пуассона когда-либо достигают вероятности 0 (он просто становится бесконечно малым). –
Чисто по определению, если вы ожидаете только 2 значения (0 или 1), распределение не будет Пуассоном, но Бернулли – Kyborek
@JosephMansfield Я его отредактировал. –