基于 C 中百分比的概率 运行
Probabilistic Running Based on Percentage in C
我正在审查我认为运行基于概率的代码。我想验证它是否属实。以下代码片段 运行 是否有 80% 的时间?我不太明白为什么要使用 1000,如果我们的工作只是 运行 80% 的代码。
if(rand()%1000<1000*0.8){
...
}
它会 运行 大约 80% 的时间。
rand()
returns 介于 0 和 RAND_MAX
之间的数字,可能是 2,147,483,647
rand() % 1000
将该范围缩小到 0-999,尽管范围前半部分左右的一些数字会稍微更常见一些,因为 RAND_MAX
不能被 1,000[=27 整除=]
1000 * 0.8
就是 800
这里用1000是随意的。表示 80% 的更清晰的方式是:
if (rand() % 100 < 80)
或者只是:
if (rand() < RAND_MAX * 0.8)
我正在审查我认为运行基于概率的代码。我想验证它是否属实。以下代码片段 运行 是否有 80% 的时间?我不太明白为什么要使用 1000,如果我们的工作只是 运行 80% 的代码。
if(rand()%1000<1000*0.8){
...
}
它会 运行 大约 80% 的时间。
rand()
returns 介于 0 和RAND_MAX
之间的数字,可能是 2,147,483,647rand() % 1000
将该范围缩小到 0-999,尽管范围前半部分左右的一些数字会稍微更常见一些,因为RAND_MAX
不能被 1,000[=27 整除=]1000 * 0.8
就是 800
这里用1000是随意的。表示 80% 的更清晰的方式是:
if (rand() % 100 < 80)
或者只是:
if (rand() < RAND_MAX * 0.8)