Задание
Учитывая набор
и целое число
найти N-е подмножество.
Ввод, вывод
N задается как целое число без знака на стандартном вводе. Вы должны напечатать подмножество Nth в формате , подходящем для вашего языка (это может включать в себя [1,2,3]
, {1,2,3}
, [1, 2, 3]
, 1 2 3
, и 1,2,3
т.д., пока это человек читаемый текст формат).
Немного о подмножествах
Существует связь между подмножествами и числами в базе два. Каждая цифра
[1,8]
(последний и первый элемент). Вы получаете N-е подмножество путем преобразования числа в основание 2, а затем подмножество включает в себя все элементы, где [1,2]
. Самая правая цифра - цифра № 0. Это нормально для печати [2,1]
. Набор не должен быть отсортирован.
Дополнения:
Да, набор фиксируется на 1..8
. Набор не является частью ввода. Ввод только N .
Да, вы можете использовать альтернативные формы ввода.
Все ожидаемые результаты для всех N : https://tio.run/##SyotykktLixN/f/fyNS02qIoP8soJd1CwSAg2kY32LPWPaoqs7jg/38A
1
для8
или это какой-то набор?"123"
, будет однозначным. Это действительно?Ответы:
Желе , 3 байта
Попробуйте онлайн!
Как это устроено
источник
R ,
5226 байтПопробуйте онлайн!
Преобразует входные данные в его биты и возвращает основанные на 1 индексы того, где они находятся
TRUE
. Это делает это портом ответа Желе Денниса .Возвращает
integer(0)
пустой список целых чисел для ввода0
.источник
Python 2 , 40 байт
Попробуйте онлайн!
источник
Perl 6 , 33 байта
Попробуйте онлайн!
источник
Python 2 , 42 байта
Попробуйте онлайн!
источник
К4 , 7 байт
Решение:
Пример:
Первые 10 ...
Объяснение:
источник
MATLAB / Octave ,
312927 байтуменьшено на 2 байта благодаря alephalpha
уменьшено на 2 байта благодаря Джузеппе
Попробуйте онлайн!
источник
@(n)9-find(dec2bin(n,8)-48)
Japt, 7 байт
Попытайся
Попытайся
источник
Шелуха , 5 байт
Принимает ввод в качестве аргумента командной строки, а не в stdin ( надеюсь, это нормально ), попробуйте это онлайн!
объяснение
источник
Haskell ,
5554 байтаВыводит набор в обратном порядке, попробуйте онлайн!
Общая версия, 56 байт
Попробуйте онлайн!
объяснение
Термин
mapM (pure [0,1]) [1..n]
генерирует список (n=4
)[[0,0,0,0],[0,0,0,1],[0,0,1,0],..,[1,1,1,1]]
- т.е. двоичные представления[0..2^n-1]
. Индексирование в этоn
дает нам двоичное представлениеn
.Теперь мы можем просто сделать
zip
это с перевернутыми числами[1..n]
и сохранить только те элементы, где двоичная цифра не равна нулю:источник
Древесный уголь , 11 байт
Попробуйте онлайн! Ссылка на подробную версию кода. Если печать ответа по горизонтали без пробелов допустима, то первый символ может быть удален. Объяснение:
источник
JavaScript (ES6), 37 байт
+4 байта, если разделитель обязателен
+3 байта, если этот разделитель является запятой и допускается начальная запятая
Попробуйте онлайн!
источник
Perl 6 , 21 байт
Попробуйте онлайн!
Альтернатива:
источник
Common Lisp, 57 байт
Попробуйте онлайн!
источник
Haskell , 33 байта
Попробуйте онлайн!
37 байт
Попробуйте онлайн!
Тестовые случаи от Ними.
источник
J ,
1310 байтПопробуйте онлайн!
источник
Japt, 7 байт
Протестируйте это онлайн
Japt, 7 байт
Протестируйте это онлайн
источник
C # (интерактивный компилятор Visual C #) , 47 байт
Попробуйте онлайн!
Выглядит похоже на решение Java сейчас, хотя я придумал свое самостоятельно.
источник
Python 3.6, 58 байт
источник
Wolfram Language (Mathematica) , 32 байта
Попробуйте онлайн!
источник
Пари / ГП , 31 байт
Попробуйте онлайн!
источник
APL + WIN, 13 байт
Подсказки для N:
Попробуйте онлайн! Предоставлено Dyalog Classic
Объяснение:
Возвращает подмножество в обратном порядке
источник
Бурлеск - 8 байт
Попробуйте онлайн.
источник
Oracle SQL, 77 байт
Тест в SQL Plus
источник
MathGolf , 8 байт
Попробуйте онлайн!
объяснение
Альтернативный формат вывода
С более гибким форматом вывода (который я лично считаю довольно неплохим) я могу придумать 6-байтовый:
Вместо отображения я использую неявный for-each и пропускаю выравнивание. Вывод выглядит так:
источник
Рубин , 31 байт
Попробуйте онлайн!
источник
F # (моно) , 45 байтов
Попробуйте онлайн!
Я также реализовал универсальную / рекурсивную функцию, но она довольно уродливая, а количество байтов намного больше ...
F # (моно) , 107 байт
Попробуйте онлайн!
источник
05AB1E , 6 байтов
Попробуйте онлайн или проверьте все возможные тестовые случаи .
Объяснение:
источник
Java 8, 58 байт
Попробуйте онлайн.
Объяснение:
источник