在 Ruby 数组中生成一组随机对时,我想防止生成具有相同项目的对。
例如:
[1,1,2,2,3,4].shuffle.each_slice(2).to_a
可能产生:
[[1, 1], [3, 4], [2, 2]]
我希望能够确保它产生如下结果:
[[4, 1], [1, 2], [3, 2]]
在此先感谢您的帮助!
最佳答案
arr = [1,1,2,2,3,4]
loop do
sliced = arr.shuffle.each_slice(2).to_a
break sliced if sliced.none? { |a| a.reduce(:==) }
end
关于arrays - 在洗牌和切片 Ruby 数组时防止相同的对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47487385/