Вы должны заполнить массив каждым числом от 0-n
включительно. Числа не должны повторяться. Однако они должны быть в случайном порядке.
правила
Все стандартные правила игры в гольф и стандартные лазейки запрещены
Массив должен быть сгенерирован псевдослучайно. Каждая возможная перестановка должна иметь равную вероятность.
вход
n
любым способом, разрешенным в посте ввода / вывода по мета.
Выход
Массив чисел скремблирован от 0-n
включительно.
Ответы:
Perl 6 , 14 байт
Попытайся
Expanded:
источник
05AB1E , 3 байта
Попробуйте онлайн!
источник
Pyth, 3 байта
демонстрация
.S
в случайном порядке Он неявно преобразует входное целое числоn
в диапазон[0, 1, ..., n-1]
.h
есть+1
, и ввод принимается неявно.источник
R , 16 байт
читает от
stdin
.sample
случайные выборки из входного вектора, возвращающие (псевдо) случайную последовательность.Попробуйте онлайн!
источник
Желе , 3 байта
Попробуйте онлайн!
Explanaion:
Альтернативный раствор, 3 байта
Объяснение:
Попробуйте онлайн!
источник
Python 2 , 51 байт
Попробуйте онлайн!
Есть,
random.shuffle()
но он изменяет аргумент вместо того, чтобы возвращать его ...источник
random.shuffle
lambda n:shuffle(range(n+1))
никуда не напишу вывод.PHP, 42 байта
Попробуйте онлайн!
источник
Баш,
1811 байтПопробуйте онлайн!
источник
Mathematica, 24 байта
источник
MATL , 4 байта
Попробуйте онлайн!
объяснение
источник
Брахилог , 2 байта
Попробуйте онлайн!
объяснение
источник
Japt , 4 байта
Попробуйте онлайн
источник
öx
что будет достаточно, пока я не заметил "инклюзивную" часть. (x
Кстати, вы можете заменить почти что-нибудь еще)C #, 76 байт
Это возвращает IOrderedEnumerable, я надеюсь, что все в порядке, иначе мне нужно еще несколько байтов для .ToArray ()
источник
CJam ,
76 байтов1 байт удален благодаря Эрику-аутголферу .
Это анонимный блок (функция), который берет целое число из стека и заменяет его результатом. Попробуйте онлайн!
объяснение
источник
{),mr}
1 байт не короче?Java 8,
11411197 байт-3 байта и исправлена ошибка благодаря @ OlivierGrégoire .
-4 байта благодаря @Jakob .
-10 байт путем удаления
.toArray()
.Объяснение:
Попробуй это здесь.
источник
n
. Закрепить и гольф:for(n++;--n>=0;l.add(n));
. Также я говорю, что вам не нужно возвращать массив. Массив и список одинаковы в большинстве языков, поэтому просто верните список.>
должно быть>=
.Stack
вместо aVector
и измените ваш цикл наfor(;n>=0;l.add(n--));
. И возвращениеjava.util.List
определенно хорошо.Ом , 2 байта
Попробуйте онлайн!
источник
Pyth, 4 байта
Попробуй это здесь!
источник
.S
с целочисленным аргументом такой же, как.SU
и[0..n]
может быть закодированUh
, так что вы можете использовать.SUh
, который затем становится.Sh
.C 75 байтов
Рекурсивная функция, которая инициализируется с конца массива при входе и заменяет случайный элемент перед выходом.
источник
n > 98
?a
в пункт, чтобы соответствовать правилу больше?Древесный уголь , 33 байта
Попробуйте онлайн! Ссылка на подробную версию кода.
По-видимому, для удаления элемента из списка в Charcoal требуется 17 байт.
Изменить: В настоящее время это занимает всего три байта, при условии, что вы хотите удалить все вхождения элемента из списка. Это плюс другие изменения в Charcoal сокращают ответ до 21 байта: попробуйте онлайн!
источник
APL (Dyalog) , 5 байтов
Попробуйте онлайн!
Предполагается
⎕IO←0
, что по умолчанию на многих машинах.объяснение
⊢
правильный аргумент1+
добавить 1 к нему?⍨
генерировать числа 0 ..1+⊢
-1 и случайным образом распределять их в массиве, чтобы никакие два числа не повторялисьисточник
q / kdb +, 11 байт
Решение:
Пример:
Объяснение:
Используйте
?
оператор с отрицательным вводом, чтобы получить полный список0->n
без дубликатов:источник
TI-83 BASIC, 5 байт (скучно)
Да, встроенный.
randIntNoRep(
это двухбайтовый токен, иAns
это один байт.Веселее, 34 байта:
Прямо из тибасичдева . Возможно, игра в гольф, но я еще ничего не нашел.
Что это делает: сортирует случайный массив, перемещая элементы второго аргумента (
L₁
здесь) так же, как и соответствующие им элементы.источник
JavaScript (ES6), 51 байт
источник
f(5)
10 раз и5
был одним из последних двух пунктов каждый раз.1,5,4,0,2,3
&1,0,2,5,3,4
. РЕДАКТИРОВАТЬ: И еще несколько prnt.sc/fe0goef(5)
1-5 раз и находит среднюю позицию каждого числа в результатах. Полученный массив был[ 1.42791, 1.43701, 2.00557, 2.6979, 3.3993, 4.03231 ]
, так что я не думаю, что он однороден. ( код )n=>(a=[...Array(n).keys(),n++]).reduce((a,v,i)=>([a[i],a[j]]=[a[j=n*Math.random()|0],v],a),a)
?random()
не равномерна. См. (Например) en.wikipedia.org/wiki/BrowserChoice.eu#CriticismАцето ,
151416 байтовВставьте ноль в стек, прочитайте целое число, создайте диапазон и перемешайте его:
Установите метку, длину теста для 0 и (в этом случае) выход:
В противном случае выведите значение, символ новой строки и вернитесь к тесту длины:
(Мне пришлось изменить код, потому что я понял, что неправильно понял вопрос, и построил диапазон от 1-n, а не 0-n.)
источник
Go , 92 байта
В основном проигрывает необходимость посева PRNG.
Попробуйте онлайн!
источник
Рубин, 20 байтов
->n{[*0..n].shuffle}
источник
8 ,
423634 байтаКод
SED (диаграмма эффекта стека)
n -- a
Использование и пример
источник
Javascript (ES6), 68 байт
Создает массив формы
Затем сортирует и возвращает последние элементы в новом порядке.
источник
J 11 байт
Объяснение:
Примеры:
источник
Tcl , 90 байт
Попробуйте онлайн!
Tcl , 96 байт
Попробуйте онлайн!
источник