【发布时间】:2015-01-11 15:22:35
【问题描述】:
如何从数组中随机选择多个项目,以确保考虑元素的重复。 Array#sample 不适合,因为它只是似乎挑选一组独特的元素:
>> array = (1..5).to_a
=> [1, 2, 3, 4, 5]
>> 10.times.map { array.sample(2) }
=> [[4, 2], [5, 4], [5, 2], [1, 4], [2, 3], [1, 4], [4, 1], [4, 5], [3, 1], [3, 1]]
...
我可以执行以下操作来确保重复,但想确认是否有更好的方法也考虑重复元素选择。
random_value_1 = array.sample
random_value_2 = array.sample
感谢您的宝贵时间!
【问题讨论】:
-
不确定是什么问题。是否要重复值?
-
不清楚?我想确保我的随机选择可以也有重复值。
-
为什么不打乱数组并从头开始挑选元素?
-
你可以把它写成
rv(array,n).zip(rv(array,n)),其中rv(array,n)从array返回一个由n元素组成的随机数组。 -
my_array.shuffle[0..10]