Есть ли способ перетасовать все элементы в массиве, за исключением указанного индекса, используя функцию shuffle
?Shuffle array with exceptions
Не нужно вручную писать метод, поддерживает ли Ruby что-либо подобное?
Например, у меня есть массив целых чисел:
array = [1,2,3,4,5]
и я хочу, чтобы перетасовать элементы в любом произвольном порядке, но оставить первый Int на своем месте. Конечным результатом может быть примерно следующее:
=> [1,4,3,2,5]
До тех пор, пока этот первый элемент остается на своем месте. Я, очевидно, нашел обходные пути, создав свои собственные методы для этого, но я хотел посмотреть, есть ли какая-то встроенная функция, которая может помочь сократить время и пространство.
Согласно [перетасовка документация] (Http: //www.ruby-doc .org/core-2.1.5/Array.html # method-i-shuffle), вы не можете сделать это с помощью одной встроенной функции Ruby. Конечно, существует ряд однострочных решений, которые вы можете найти. – Free
Возможно, вы можете передать пользовательский случайный объект, который не перетасовывает конкретные индексы? – August
Почему бы вам не показать нам пример того, что вы подразумеваете, предоставляя некоторые входные данные и как вы хотите, чтобы это было рандомизировано, вместо того, чтобы просить нас представить это? –