2014-12-12 7 views
0

код, который я получил от 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) 

и таким же образом (с таким же значением) мы создаем этот массив для каждого когнитивного пользователя.

+2

Вы действительно хотите распространение Пуассона? Я не думаю, что большие значения из распределения Пуассона когда-либо достигают вероятности 0 (он просто становится бесконечно малым). –

+1

Чисто по определению, если вы ожидаете только 2 значения (0 или 1), распределение не будет Пуассоном, но Бернулли – Kyborek

+0

@JosephMansfield Я его отредактировал. –

ответ

1

Лямбда является средним распределением Пуассона, поэтому 0,5 - лямбда.

Не имеет смысла «ограничивать» распределение Пуассона, поскольку среднее значение является только ожидаемым значением. У вас может быть больше или меньше успехов.

Возможно, вы ищете распределение Бернулли?

EDIT:

Я сделал быстрый Google по «зондированию спектра когнитивных радиосетей», и это выглядит, как вы после Poisson point process. Если у вас есть точечный процесс Пуассона с интенсивностью лямбда, тогда события происходят со скоростью, так что ожидаемое количество событий на любом единичном временном интервале лямбда.

+0

Я отредактировал проблему. Пожалуйста, прочитайте еще раз. Благодарю. –

+0

@WhoCares. Ваше изменение не имеет никакого значения. Если вы ищете двоичный результат с фиксированными вероятностями и независимыми результатами, вы указываете само определение случайной величины Бернулли. Если бумага говорит генерировать с помощью Пуассона, авторы не знают, о чем они говорят, потому что поддержка Пуассона - это набор положительных целых чисел, а не только {0,1}. – pjs