у меня есть массив @number = [1,2,3,4,5,6,7,8,9] Теперь я хочу рандомизировать содержимое массива ... что-то вроде, например: [5,3,2,6,7,1,8] Пожалуйста, объясните мне, как это сделать.
@number = [1,2,3,4,5,6,7,8,9]
[5,3,2,6,7,1,8]
Используйте метод shuffle ...
shuffle
irb(main):001:0> [1,2,3,4,5].shuffle => [3, 4, 2, 5, 1]
команда shuffle возвращает рандомизированную версию массива
например:
[1,2,3].shuffle => [2,3,1]
[1,2,3,4,5,6,7,8,9].sort_by {rand}[0,9] => [5, 7, 3, 8, 9, 4, 2, 1, 6]
Если вы используете старую версию ruby ... это будет работать
def randomize(array) b = [] array.length.downto(1) { |n| b.push array.delete_at(rand(n)) } b
end
a = [1,2,3,4,5] b = randomize (а) печать b
loop n times i = random array index j = random array index swap elements i and j end