我想在这个随机函数中添加一个表示返回true的几率的参数
例如rand_num(80)
会给80%的几率返回真实。

bool rand_num()             // randomize 0 or 1
{
int result =0;
srand(time(NULL));
result = (rand()%2);

return result;

}

谢谢。

最佳答案

所以两个人给出了相似的答案,都是简单的mod。两者都是错的。正确版本:

bool randX(int X)
{
    do {
       int rnd = rand() & 127;
       if (rnd < X) return true;
       if (rnd >= X && rnd < 100) return false;
    } while (1);
}

请注意,使用mod destablises作为rand()的分布在任意mod上并不平滑。

关于c - 产生随机数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19865366/

10-12 15:13