Я хочу сделать один метод в рубин, который возвращает одно случайное число из массива и сделал это:Ruby - удалить номер из случайного массива и вернуть массив с n случайными числами?
@nr = 1..60
def ar_one
ar = @nr.to_a.shuffle
ar.pop
end
Но я получить число больше, чем один раз, а массив никогда не равен нулю. Что не так с этим?
И мне нужен метод, который дает мне n * random_numbers_from_array. Итак, если я говорю n = 3, чем хочу: [12, 1, 59] что-то вроде этого и удаляю эти 3 числа там индекс. Я пробовал это, но я получил только одно случайное число в индексе n-1.
def ar_all(n=3)
arr = []
@nr.each do |nr|
arr.insert(n-1,ar_one)
n += -1
return arr
end
end
Было бы здорово, если кто-то может сказать, какая ошибка я сделал в arr_one и как получить все п случайных чисел в arr_all, спасибо.
Ваше название и первое предложение противоречивы. Первый должен быть исправлен. Очевидно, вы хотите вернуть удаленное число, а не результирующий массив. –