ruby中是否有一些函数在一个范围内生成k个随机数而没有替换(重复)?
像Python中的random.sample函数,如下所示
>>> import random
>>> random.sample(range(1, 100), 3)
[77, 52, 45]
答案 0 :(得分:2)
您可以创建一个范围,将范围转换为数组,然后调用Array::sample,它可以采用指定样本数的参数。
(1..100).to_a.sample(3)
答案 1 :(得分:1)
你可以用这个:
(1..100).to_a.shuffle[0..2] #=> [13, 36, 88]
其中:
(1..100).to_a
创建一个包含可能值的数组。.shuffle
随机对数组进行排序。[0..2]
抓住了混洗数组的前3个元素。