问我需要一个随机的真/假值,所以我正在使用rand() % 2,但它总是交替出现 0, 1, 0, 1, 0...
答糟糕的伪随机数生成器(例如某些系统不幸提供的生成器)在低位比特上随机性不高。(事实上,对于周期为 2**e 的纯线性同余随机数生成器,这也是写 e 位机器的随机数生成器的方式,低 n 位比特会以周期 2**n 重复。)因此,最好使用高位比特:请参阅问题 13.16。
参考:Knuth 第 3.2.1.1 节 pp. 12-14
由 托管