计算C++中是否会出现1/4的可能性的最佳方法是什么?

2 c++ random probability

我想知道是否有一种聪明的方法可以找到答案

事情发生了1/4的可能性.

我知道我们可以用rand()%4执行此操作并检查它是否等于0,但有没有办法不使用rand()?在c ++中,谢谢.

cop*_*pro 11

如果你的意思是想要避免许多rand()实现的固有困难,你应该研究Boost Random库,它有几个高质量的pRNG(伪随机数生成器),以及许多控制输出的方法.该库也以略微修改的形式存在std::tr1.

  • 我想看看关于C++的一个问题没有回答"使用提升:; something_or_other":-) (3认同)

Bar*_*lly 9

从来没有 使用%用于截断PRNG值转换为范围.大多数PRNG具有相对非随机的低阶位.

对于您的情况,使用像BCS建议的分区(RAND_MAX/n).