首页 > 解决方案 > 从一组数字中选择随机数而不重复

问题描述

我想从中选择X数字,使选择0....N-1的数字不重复。我知道

val rand_pos = Seq.fill(X)(Random.nextInt(N))

重复生成随机数。是否有优雅的方法来获得所需的选定数字而无需重复?

标签: scala

解决方案


如果 N 不是太大,您可以使用scala.util.Random.shuffle创建 0..N-1 的排列,然后取 X 个元素:

scala.util.Random.shuffle(Range(0,N).toList).take(X)

推荐阅读