如何生成一个随机数列表?

这可能是史上最不重要的问题,但它困扰着我。 我将如何生成一个随机数列表。 我到目前为止:

def n_rands(n : Int) = { val r = new scala.util.Random 1 to n map { _ => r.nextInt(100) } } 

哪些工作,但不看起来非常Scalarific给我。 我接受build议。

编辑

这并不是因为它与现在的有趣和显而易见的相关,以下看起来像是有效的:

 1 to 20 map r.nextInt 

但是返回列表中每个条目的索引也是最后一个的上限。 第一个数字必须小于1,第二个数字小于2,依此类推。 我跑了三四次,注意到“呃,结果总是从0开始……”

您可以使用Don的解决scheme或:

 Seq.fill(n)(Random.nextInt) 

请注意,您不需要创build一个新的Random对象,就可以使用默认伴随对象Random,如上所述。

怎么样:

 import util.Random.nextInt Stream.continually(nextInt(100)).take(10) 

关于你的编辑,

nextInt可以采用一个Int参数作为随机数的上界,所以1 to 20 map r.nextInt1 to 20 map (i => r.nextInt(i)) ,而不是一个更有用的编译错误。

1 to 20 map (_ => r.nextInt(100))做你想要的。 但是最好使用Seq.fill因为它更准确地表示你在做什么。