【发布时间】:2011-10-26 23:48:21
【问题描述】:
我对运营商有点困惑,并且与随机生成一起使用。我想我只是在问这段代码是否符合我的要求?
根据我分配函数的概率生成“随机”TRUE 或 FALSE。
bool randtf(int probability) {
if ((rand() % 100) < probability)
return true;
else
return false;
}
所以如果randtf(63) 有 63% 的机会成为TRUE?
任何指导将不胜感激。谢谢。
【问题讨论】:
-
rand() 从何而来?它是否返回 0 到 1(不包括)之间的随机浮点数?
-
@dgrant,如果它返回一个浮点数,
% 100会给你一个编译器错误。 -
目前没有,它只是标准的烂 rand(),我用这个来回答问题。
-
@dgrant:我认为我们可以假设除非另有限定,否则这是标准库
rand()。 -
在风格上,不要像
return true或return false这样。只需return (rand() % 100) < probability;也可以删除冗余...
标签: c++