比如你要想在软件里附加一个彩蛋给用户玩,每次软件启动后只有5%的机率会触发这个彩蛋。那么怎么根据5%这个规定来知道某次是否触发呢?于是就有了下面这个函数:
bool GetBoolByProbability(int numOfHundred)
{
assert(numOfHundred >= 0 && numOfHundred <= 100);
return numOfHundred == 0 ? false : ((rand()%100)+1 <= numOfHundred);
}
只要调用 GetBoolByProbability(5) 就能得到某次是否触发。为什么不在函数里加入 srand(time(0)) ? 这条语句比较适合放在在程序入口处(而不是随机函数中),不明白的可以自己做个实验对比看看。