【发布时间】:2014-12-12 15:33:22
【问题描述】:
我从 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 的概率(它只会变得无限小)。
-
纯粹根据定义,如果您期望只有 2 个值(0 或 1),分布将不是泊松而是伯努利
-
@JosephMansfield 我编辑了它。
-
@Kyborek 我编辑了它。
-
纯粹从你所说的来看,这篇论文似乎没有多大意义。也许他们限制了任何大于 1 的值?还是丢弃它们?仍然是一件很奇怪的事情,因为你最终会得到一个以奇怪的方式实现的伯努利分布。
标签: c++ distribution poisson probability-theory