c – 生成随机位的最快方法

什么是生成大量(伪)随机位的最快方法.每个位必须是独立的,并且在概率相等的情况下为零或一个.我显然可以做一些变化
randbit=rand()%2;

但我觉得应该有一个更快的方法,从每次调用随机生成生成几个随机位.理想情况下,我想获得一个int或char,其中每个位是随机且独立的,但其他解决方案也是可能的.

该应用程序本质上不是加密的,因此强随机性不是主要因素,而速度和获得正确的分布是重要的.

解决方法

随机数转换为二进制数
为什么不只得到一个数字(适当大小以获得你需要的足够数量)然后将其转换为二进制数.实际上,您将从随机数中获取位,这意味着它们也是随机的.

零和1也具有50%的概率,因为将0和2 ^ n之间的所有数字限制并且计数零和1的数量相等>意味着零和一的概率是相同的.

关于速度这可能会非常快,因为只需一个随机数与其中的位数相比就更快了.它现在完全取决于你的二进制转换.

相关文章

本程序的编译和运行环境如下(如果有运行方面的问题欢迎在评...
水了一学期的院选修,万万没想到期末考试还有比较硬核的编程...
补充一下,先前文章末尾给出的下载链接的完整代码含有部分C&...
思路如标题所说采用模N取余法,难点是这个除法过程如何实现。...
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码...
刚开始学习模块化程序设计时,估计大家都被形参和实参搞迷糊...