Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
当在任何语言中使用随机数时,人们总是做一些类似random % 100 + 1的事情来限制1到100范围内的任何数字。但是 mod 运算符是如何限制它的呢?我虽然它只是用于计算余数?谁可以给我解释一下这个?
mod用于计算余数,这是真的。余数总是受 (divisor-1) 限制。所以random % 100总是属于的结果[0, 99]。
mod
random % 100
[0, 99]
的另一个有用的属性mod是它将初始范围映射到结果范围,而不是“相当”。也就是说,random mod N == k随着随机范围的增长,概率趋向于 1/N,如果 N 是随机范围的除数(random当然是均匀分布),则概率恰好是 1/N。
random mod N == k
random