本文解释了取模偏差(modulo bias)—— 使用取模运算限制随机数范围时常见的隐蔽bug,会破坏均匀分布。用u64均匀随机数对10取模时,部分元素被选中的概率会略高,因为2^64无法被10整除。
背景
取模偏差是编程中一个众所周知的问题,影响所有从集合中随机选取元素的人,尤其是当集合大小无法整除随机数生成器的输出范围时。
- 来源
- Lobsters
- 发布时间
- 2026年10月7日 08:43
- 评分
- 6.0 / 10
本文解释了取模偏差(modulo bias)—— 使用取模运算限制随机数范围时常见的隐蔽bug,会破坏均匀分布。用u64均匀随机数对10取模时,部分元素被选中的概率会略高,因为2^64无法被10整除。
取模偏差是编程中一个众所周知的问题,影响所有从集合中随机选取元素的人,尤其是当集合大小无法整除随机数生成器的输出范围时。