文档scala.util.Random.nextInt (n: Int): Int
说"返回一个伪随机,均匀分布的int值介于0(含)和指定值(独占)...",而scala.util.Random.nextInt (): Int
它表示"返回下一个伪随机,均匀分布的int值......",没有任何东西关于零.我偶尔可以得到负值吗?
om-*_*nom 12
是的,你可以(由于统一分布的定义,这是可以的).此外,你将在近50%的情况下得到它.
(for(i <- 1 to 100000) yield scala.util.Random.nextInt()).filter(_<0).length
Run Code Online (Sandbox Code Playgroud)
已经屈服于我49946 - 这非常接近50%.
mis*_*tor 10
显然,是的.它在我第一次尝试时返回负值!:-)
scala> import util.Random
import util.Random
scala> Random.nextInt
res0: Int = -299006430
Run Code Online (Sandbox Code Playgroud)
正如你在这里看到的(使用Mike Harrah的优秀sxr),Scala Random
只是委托给一个底层java.util.Random
,这被称为self
.
正如其他人指出的那样,默认范围介于Integer.MIN_VAL
和之间Integer.MAX_VAL
,换句话说,是任何Integer
可能的,包括负面的.
如果只想要正范围,可以使用nextInt
带参数的重载方法,如下所示:
Random.nextInt(Integer.MAX_VALUE);
Run Code Online (Sandbox Code Playgroud)
根据文件:
返回从此随机数生成器的序列中提取的伪随机,均匀分布的int值,介于0(包括)和指定值(不包括)之间.
归档时间: |
|
查看次数: |
12602 次 |
最近记录: |