这可能是史上最不重要的Scala问题,但这让我感到烦恼。我如何生成n个随机数列表。到目前为止我所拥有的:
def n_rands(n : Int) = {
val r = new scala.util.Random
1 to n map { _ => r.nextInt(100) }
}
哪个有效,但对我来说看起来不太明显。我愿意接受建议。
修改
不是因为它的相关性非常重要而且回想起来很明显,以下看起来很有效:
1 to 20 map r.nextInt
但是返回列表中每个条目的索引也是最后一个条目的上限。第一个数字必须小于1,第二个数字必须小于2,依此类推。我跑了三四次,注意到“嗯,结果总是从0开始......”
答案 0 :(得分:89)
答案 1 :(得分:33)
怎么样:
import util.Random.nextInt
Stream.continually(nextInt(100)).take(10)
答案 2 :(得分:5)
关于你的编辑,
nextInt
可以将Int
参数作为随机数的上限,因此1 to 20 map r.nextInt
与1 to 20 map (i => r.nextInt(i))
相同,而不是更有用的编译错误。
1 to 20 map (_ => r.nextInt(100))
按照您的意图行事。但最好使用Seq.fill
,因为这样可以更准确地表示您正在做的事情。