如题,我是有一个double prob,作为伯努利分布的p值。
每次如果bool值是true,就是succeed;反之则不是。
函数如下。
bool ifSucceed(double prob)
{
default_random_engine generator;
bernoulli_distribution b(prob);
return b(generator);
}
调用时:
for (int i = 0; i < n - 1; ++i)
{
if (ifSucceed(cSetx[i].probFailure))
{
cout << i<<": Twice Delivery" << endl;
totalDist += 3*getDist(cSetx[i], cSetx[i + 1]);
}
else
{
totalDist += getDist(cSetx[i], cSetx[i + 1]);
//cout << "TotalDist: " << totalDist << endl;
}
但是试验了几次,都没有出现succeed的情况。
就算把部分概率改为1,那一部分也不一定能出现succeed,这显然是不合理的。
请各位赐教!谢谢!