随机化数组元素

时间:2010-09-29 04:38:17

标签: ruby shuffle

我有一个数组@number = [1,2,3,4,5,6,7,8,9]
现在,我想随机化数组内容...例如:[5,3,2,6,7,1,8]
请指导我如何继续。

5 个答案:

答案 0 :(得分:11)

使用shuffle方法...

irb(main):001:0> [1,2,3,4,5].shuffle
=> [3, 4, 2, 5, 1]

答案 1 :(得分:8)

shuffle命令返回数组的随机版本

例如:

[1,2,3].shuffle => [2,3,1]

答案 2 :(得分:1)

[1,2,3,4,5,6,7,8,9].sort_by {rand}[0,9]  
=> [5, 7, 3, 8, 9, 4, 2, 1, 6]

答案 3 :(得分:-1)

如果您使用旧版本的ruby ......这将有效

def randomize(array)
b = []
array.length.downto(1) { |n|
    b.push array.delete_at(rand(n))
} 
b 

a = [1,2,3,4,5] B =随机化(a)中 打印b

答案 4 :(得分:-2)

loop n times
   i = random array index
   j = random array index
   swap elements i and j
end