Вступление
Предположим, у меня есть список целых чисел, скажем, L = [-1,2,2,1,2,7,1,4] . Мне нравится иметь баланс в моей жизни, поэтому я рад видеть, что в нем столько же нечетных элементов, сколько и четных. Более того, он также имеет одинаковое количество элементов во всех классах по модулю 3, в которых он имеет элементы:
[-1,2,2,1,2,7,1,4]
0 mod 3:
1 mod 3: 1 7 1 4
2 mod 3: -1 2 2 2
К сожалению, для классов по модулю 4 это больше не имеет места. В общем, мы говорим, что непустой список сбалансирован по модулю N, если он имеет одинаковое количество элементов во всех классах по модулю N, для которых это число не равно 0. Вышеприведенный список L является сбалансированным по модулю 2 и 3, но не сбалансированным по модулю 4.
Задание
Ваш ввод представляет собой непустой список L целых чисел, взятых в любом приемлемом формате. Ваш вывод - список тех целых чисел N ≥ 2 , что L сбалансировано по модулю N , опять же в любом приемлемом формате. Порядок вывода не имеет значения, но он не должен содержать дубликатов.
Гарантируется, что на выходе имеется только конечное число чисел, что точно означает, что не все элементы L встречаются в нем одинаковое количество раз. Примерами неверных входных данных являются [3] , [1,2] и [0,4,4,0,3,3] . Обратите внимание, что наибольшее число в выводе не более max (L) - min (L) .
Наименьшее количество байтов в каждом языке выигрывает, и стандартный код-гольф применяются правила .
Контрольные примеры
[1,1,2] -> []
[1,1,5] -> [2,4]
[1,1,24] -> [23]
[1,2,3,2] -> [2]
[12,12,-4,20] -> [2,3,4,6,8,12,24]
[1,1,12,12,-3,7] -> [3,10]
[-1,2,2,1,2,7,1,4] -> [2,3]
[4,-17,-14,-18,-18,3,5,8] -> []
[-18,0,-6,20,-13,-13,-19,13] -> [2,4,19]
[-11,-19,-19,3,10,-17,13,7,-5,16,-20,20] -> []
[3,0,1,5,3,-6,-16,-20,10,-6,-11,11] -> [2,4]
[-18,-20,14,13,12,-3,14,6,7,-19,17,19] -> [2,3]
[-16,-9,6,13,0,-17,-5,1,-12,-4,-16,-4] -> [3,9]
[-97,-144,3,53,73,23,37,81,-104,41,-125,70,0,111,-88,-2,25,-112,54,-76,136,-39,-138,22,56,-137,-40,41,-141,-126] -> [2,3,6]
Ответы:
05AB1E , 11 байт
Попробуйте онлайн!
источник
Wolfram Language (Mathematica) ,
5652 байтаСпасибо Не дерево за сохранение 4 байта.
Попробуйте онлайн!
Основной трюк в игре в гольф заключается в использовании
суммы абсолютных значений (или 1-нормы)суммы квадратов значений, вычисленной как произведение точки на себя, в качестве верхней границы вместоMax@#-Min@#
. В противном случае, он просто реализует спецификацию буквально.источник
Perl 6 ,
5248 байтПроверь это
Проверь это
Expanded:
источник
Haskell ,
8584 байтаПопробуйте онлайн! Максимально использует сумму абсолютных значений из ответа Мартина Эндера .
Редактировать: -1 байт благодаря Эрджану Йохансену.
Объяснение:
источник
Шелуха , 13 байт
Попробуйте онлайн!
источник
R ,
7572 байтаПопробуйте онлайн!
Использует
table
для вычисления количества каждого целого по модулюx
. Стандартное отклонениеsd
набора чисел равно нулю, если все они равны, и положительно в противном случае. Следовательно!sd(table(L%%x))
,TRUE
гдеL
мод - сбалансированный модx
и ложь в противном случае. Эти значения затем объединяются вF
.which
затем возвращает индексы истинных значений из функции. Поскольку R использует индексирование на основе 1 иF
изначально представляет собой вектор длиной один со значениемFALSE
, он будет правильно возвращать значения, начинающиеся с2
.Можно ожидать, что встроенная функция
range
вычислит диапазон набора данных , т.е.max(D)-min(D)
, но, к сожалению, она вычисляет и возвращает векторc(min(D), max(D))
.источник
чистый , 121 байт
Использует трюк с суммой абсолютов из ответа Мартина Эндера.
Golfed:
Удобочитаемый:
Попробуйте онлайн!
источник
Желе , 12 байт
Попробуйте онлайн!
Спасибо пользователю 202729 за сохранение байта и Мартину Эндеру (косвенно) за сохранение байта.
Как это устроено
Однострочную альтернативу 12 байтов можно попробовать онлайн!
источник
AS
(S
гмA
bsolutes) тоже.ḟ0
не нужен чат .Питон 3,
120102 байтаНе красивая игра в гольф.
-18 байт благодаря мистеру Xcoder .
Попробуйте онлайн!
источник
MATL , 19 байт
-4 байта благодаря Луису Мендо!
Попробуйте онлайн!
Порт моего ответа в R .
источник
S5L)d
вместоX>GX<-
и8#u
вместоFFFT#u
[1 0]
(но я знал, что это возможно), так что5L
это удобно, и я*still* really need to go and properly read the docs for
# `:( но спасибо!#
указания числа, превышающего максимальное количество выходов, просто выбираются отдельные выходы. С функциейu
максимум есть4
,5#u
естьT#u
,6#u
естьFT#u
и т. Д.JavaScript (ES6), 117 байт
Выводит разделенный пробелами список значений.
Контрольные примеры
Показать фрагмент кода
источник
Clojure, 91 байт
Использование
frequencies
не идеально в коде гольф.источник
J, 38 байт
Кредит идет к г-ну Xcoder для суммы трюк абсолютных значений.
Отредактируйте ссылку TIO, если хотите - я немного поторопился с этим.
Объяснение и ссылка TIO скоро появятся (иш).
источник
APL (Дьялог) ,
43413830 байтовСимволы в коде рассказывают всю историю.
8 байтов сэкономлено благодаря @ Adám
Попробуйте онлайн!
источник
∊x⊆⍨1=⊂(≢∘∪1⊥|∘.=|)¨⍨x←1+∘⍳1⊥|