scala - 从一组数字中选择随机数而不重复
问题描述
我想从中选择X
数字,使选择0....N-1
的数字不重复。我知道
val rand_pos = Seq.fill(X)(Random.nextInt(N))
重复生成随机数。是否有优雅的方法来获得所需的选定数字而无需重复?
解决方案
如果 N 不是太大,您可以使用scala.util.Random.shuffle
创建 0..N-1 的排列,然后取 X 个元素:
scala.util.Random.shuffle(Range(0,N).toList).take(X)
推荐阅读
- r - 从 Shiny 中的选择输入中提取数字 id 值
- css - 使用 CSS Grid 将所有项目放在屏幕中央
- github - 致命的无法访问存储库 - 对等方重置 TCP 连接
- python - 如何从不同的模型上传一个或多个文件,而不是使用与 ModelSerializer 的外键关系存储它们的模型?
- php - 使用 mailto 链接,如何防止 Gmail 从 URL 的查询字符串中删除 = 符号及其后面的所有内容?
- java - 更新 Android Studio 后出现的错误
- pandas - Tensorflow 使用来自 Datarame 的“值”加载图像
- android - 重用布局和片段
- django - 在 Elasticsearch DSL DRF 上搜索嵌套字段
- go - Kubernetes 中的 NSQ 集群