我有一个需要生成很多0/1随机值的程序。因为这需要多次并且在代码的不同部分,我希望有一个时间高效且易于使用的随机生成器来执行此任务。
我开始使用C ++ 11中的标准库<random>
这样做,但文档很稀疏,有时甚至是矛盾的。
我的问题如下:
我应该自己提取位(使用无符号long long上的掩码)还是库可以独立完成?
确实,我发现document表示:
更好的是,符合标准的发行版应对所有引擎 角落案件,甚至不太可能。例如,如果发动机交付 每个呼叫的比特数少于所需的数量,分配将产生多个比特 调用,直到它有足够的位来让它满足整个所需的 变异范围。另一方面,如果引擎产生更多位 比需要的,分发可以自由缓存多余的使用 下次它被召唤。
uniform_int_distribution
或bernoulli_distributio
(bool)分布吗? (什么是最有效率的?)