Вы энтузиаст Ruby и хотите изучить новые способы манипулирования массивами? Если да, то вам повезло! В этой статье блога мы рассмотрим несколько методов выбора произвольного количества случайных элементов из массива с помощью Ruby. Мы углубимся в примеры кода и объясним каждый метод в разговорной и понятной для новичков форме. Итак, начнём!
Метод 1: использование метода sample
Первый метод, который мы обсудим, — это использование метода sample. Этот метод возвращает случайный элемент или массив случайных элементов из исходного массива. Вот пример:
array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
random_elements = array.sample(3)
puts random_elements.inspect
Выход:
[5, 1, 7]
Метод 2: перетасовка и выбор
Другой способ выбрать произвольное количество случайных элементов из массива — перетасовать массив и затем выбрать желаемое количество элементов из перетасованного массива. Вот пример:
array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
shuffled_array = array.shuffle
random_elements = shuffled_array[0, 3]
puts random_elements.inspect
Выход:
[7, 3, 1]
Метод 3: использование метода Array#sampleс перечислителем
В этом методе мы будем использовать метод Array#sampleс перечислителем для выбора произвольного числа случайные элементы из массива. Вот пример:
array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
random_elements = array.sample(3, random: Random.new)
puts random_elements.inspect
Выход:
[8, 3, 5]
Метод 4: случайный выбор «сделай сам»
Если вы предпочитаете более практический подход, вы можете вручную реализовать логику случайного выбора, используя метод rand. Вот пример:
array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
random_elements = []
n = 3
n.times do
random_index = rand(array.length)
random_elements << array[random_index]
array.delete_at(random_index)
end
puts random_elements.inspect
Выход:
[10, 3, 5]
В этой статье мы рассмотрели несколько методов выбора произвольного количества случайных элементов из массива с помощью Ruby. Мы рассмотрели метод sample, перетасовку и выбор, использование Array#sampleс перечислителем и подход «сделай сам». Включив эти методы в свой код Ruby, вы можете добавить дополнительный уровень случайности и гибкости к вашим манипуляциям с массивами. Приятного кодирования!