使用什么概率函数

时间:2013-07-10 10:08:25

标签: c++ c algorithm math probability-density

我想在概率上从向量中的“e”edges_in_sorted_order中选择“n”个边。 但我想在选择中使用概率。而且我也不想在首发中选择大边缘。

所以它就像在起点上给较小的边缘增加了更多的重量,并且随着边缘的增加, 我也会给更大的剩余边缘赋予越来越多的重量。

我应该选择n和e的概率函数吗?

while( edgesTaken < n ) {
     for each edge i and edgesTaken < n
         probability = pdf( edgesTaken, i)
         if ( prob > THRESHOLD )
              take the edge
 }

enter image description here

2 个答案:

答案 0 :(得分:0)

您需要分配功能来进行所需的分发。使用标准生成器绘制一个随机数,以便在[0,1]中统一分布q。然后用q作为参数调用分位数函数。得到的随机集将具有所需的分布。

答案 1 :(得分:0)

第一个边是1的概率是选择(n-1,e-1)/选择(n,e)。

更一般地说,第一个边缘是k的概率是 [选择(n-k,e-1)/选择(n,e)] * 1 / k

你也可能想要1-k中只有一条边的概率: [选择第(n-K,E-1)/选择(N,E)]

从这里开始,我认为你可以把事情搞定!

P.S。只是为了解释,这三个函数给出了选择满足条件的边的方法的数量比,选择(n,e)这是从n中选择边的方法的数量。