【发布时间】:2010-10-26 10:32:58
【问题描述】:
生成大量(伪)随机位的最快方法是什么。每个位必须是独立的,并且以相等的概率为零或一。我显然可以在
上做一些变化randbit=rand()%2;
但我觉得应该有一种更快的方法,从每次调用随机数生成器生成几个随机位。理想情况下,我希望得到一个 int 或 char,其中每个位都是随机且独立的,但其他解决方案也是可能的。
该应用程序本质上不是加密的,因此强随机性不是主要因素,而速度和获得正确的分布很重要。
【问题讨论】:
-
您在寻找哪种发行版?你对分布的正确性有多挑剔。如果您真的希望区间 [1..n] 中的数字 x 的 P[x] = 1/n,那么即使您的应用程序不是加密的,您仍然需要一个好的 rng。
-
((int)rand*rand)%2这样的东西怎么样? -
可能与 stackoverflow.com/questions/25176423/… 重复(这个问题更广泛,因为它还询问非 50:50 分布)