新的 arc4random_uniform 实现
💡
原文中文,约5700字,阅读约需14分钟。
📝
内容提要
本月初,Robert Clausecker 替换了 FreeBSD 的 arc4random_uniform(3) 函数,改进了伪随机数生成算法,确保在指定范围内生成均匀分布的随机数,避免采样偏差并提高计算效率。新算法基于 Daniel Lemire 的研究,减少了除法运算,优化了性能。
🎯
关键要点
- Robert Clausecker 替换了 FreeBSD 的 arc4random_uniform(3) 函数,改进了伪随机数生成算法。
- 新算法确保在指定范围内生成均匀分布的随机数,避免采样偏差并提高计算效率。
- arc4random_uniform(3) 是基于 arc4random(3) 的函数,用于生成较小范围的伪随机数。
- 原算法存在采样偏差,直接取模可能导致某些数字出现概率较高。
- 新算法基于 Daniel Lemire 的研究,减少了除法运算,优化了性能。
- 新算法通过生成均匀分布的伪随机数并进行乘法运算来避免除法。
- 新算法在生成随机数时,使用了更高效的计算方式,减少了对 CPU 的负担。
- 最终实现的代码中,避免了不必要的除法运算,提高了随机数生成的效率。
🏷️
标签
➡️