我有以下代码来生成新的随机数
val start = 1
val end = 50000000
val rnd = new scala.util.Random
for (i < 1 to 25000000){
val rnum = start + rnd.nextInt((end - start) + 1)
...
}
但是,这一次又一次地产生重复的随机数。这是错误还是我做了一些愚蠢的事情?
最佳答案
不用担心,这不是错误,您也没有做任何愚蠢的事情。但是,您已经错过了随机数序列可以包含重复的的事实。
原因在注释中说明。
问题在于人类对随机数没有很好的本能理解。如果您要求人们写一系列数字,即使出现这种情况的可能性为10%,他们也不大可能重复一个数字。如果您要求人们写下5个随机数字,那么即使70%的情况下,他们都不太可能两次使用相同的数字。
关于scala - Scala随机数生成器不在范围之间产生唯一的随机数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55997435/