这些功能来自Rng.scala。函数int
生成伪随机32位。函数chooseint
不喜欢nextInt(n: Int)
的{{1}},它做类似的事情。
java.util.Random
def int: Rng[Int] = nextbits(32)
def chooseint(l: Int, h: Int): Rng[Int] =
int map (x => {
val (ll, hh) = if(h < l) (h, l) else (l, h)
// using longs to avoid overflows
val diff = hh.toLong - ll.toLong
if (diff == 0) ll
else (ll.toLong + (math.abs(x.toLong) % (diff + 1))).toInt
})
是否真正为chooseint
和l = 0
生成均匀分布的伪随机数?