Старейшая польская соляная шахта, расположенная в Бохне *, была основана в 1248 году, что можно считать магическим числом . Мы можем видеть , что он равен 4 цифры от последовательности возведения в степень: .
Поскольку дата на самом деле составляет 4 цифры из последовательности, мы можем сделать ее длиннее. Мы могли бы повторить процесс, пока не достигнем бесконечности. Последовательность будет выглядеть так, если мы ограничим ее числом2048
124816326412825651210242048
Чтобы это выглядело немного лучше, мы можем разделить числа:
1|2|4|8|16|32|64|128|256|512|1024|2048
Давайте попробуем пользовательскую, более длинную последовательность, чем дата. Допустим, мы хотим, чтобы он имел 5 цифр - существует более одной возможности:
24816
81632
64128
Или 3 цифры:
124
248
816
Мы могли бы также добавить к этому 3-значные числа, но, скажем, последовательность должна иметь как минимум два числа .
* В английской Википедии нет информации об этом. Если вы вводите польскую версию - то есть. Если вы посетите шахту, рабочие также скажут вам, что она началась в 1248 году.
Соревнование
Создайте последовательность возведения в степень, как в примерах выше, с основанием 2.
Учитывая число в диапазоне 2-27, выведите все возможные части последовательности (2048 или больше, если хотите) с количеством цифр, равным вводу. Вы не можете вырезать число, поэтому вывод вроде 481
недопустим, потому что 16 разрезается пополам.
Правила:
- Стандартные лазейки запрещены.
- Вы можете предположить, что ввод - это число внутри диапазона.
- Ваша программа может принимать входные данные, превышающие диапазон (28+), но это не увеличит / уменьшит оценку.
- Пробелы в выходных данных игнорируются. Вы можете выводить как
124
или как4 8 16
. - Различные возможности должны быть отделены любым символом из списка:
,./|
или переводом строки. - Вы можете вывести в виде массива.
- Каждая возможность должна включать как минимум 2 разных номера .
- Вы должны выходная часть последовательности, вы не можете смешивать номера, которые не рядом друг с другом, как:
14
. - Жестко закодированный вывод не разрешен, однако вы можете жестко закодировать строку / число / массив, содержащий полную последовательность.
- Вход 27 должен возвращать полную последовательность 2048.
- Как уже упоминалось ранее, не сокращайте числа . Ex.
16
должен остаться16
- ты не можешь использовать481
- ты должен использовать4816
. - РЕДАКТИРОВАТЬ: Я мог бы сказать что-то не так там; 2048 - это последний номер, который должна поддерживать ваша программа, вы можете добавить поддержку для больших целых чисел.
Контрольные примеры
Входные данные: 2
12, 24, 48
Входные данные: 3
124, 248, 816
Входные данные: 4
1248, 4816, 1632, 3264
Входные данные: 5
24816, 81632, 64128
Входные данные: 27
124816326412825651210242048
А потом цифры ...
Если я допустил ошибку в каком-либо из тестовых случаев, сообщите мне или отредактируйте вопрос.
Это код-гольф , поэтому выигрывает самый короткий код в байтах!
источник
Ответы:
05AB1E ,
121110 байтПоддерживает последовательность до
2^95 = 39614081257132168796771975168
Попробуйте онлайн!
объяснение
1 байт благодаря Erik the Outgolfer.
1 байт благодаря Riley.
источник
X›
может быть≠
Y₃Ým
быть₃Ýo
?Pyth,
22212017 байтПопробуйте онлайн
объяснение
источник
fqQlTmjkdftlT.:m^2d12
fqQlTjLkftlT.:m^2d12
Желе ,
19 1816 байтовТеперь может быть более короткое решение, когда мы можем использовать любое отсечение (не только 2048), хотя это изменение спецификации позволило сэкономить один байт из этой реализации, перейдя к отсечке 32768. -
Да. ..
-2 байта благодаря Эрику Outgolfer (использование,
V
чтобы позволить неявный правильный аргумент фильтра и ужесточения) -да, это очень похоже на его неэффективный в настоящее время; давай голосуй его !
Монадическая ссылка, принимающая число и возвращающая список чисел.
Попробуйте онлайн!
Как?
источник
V
и он будет работать на 16 , а не 1000:⁴Ḷ2*Ẇṫ17VDL$⁼¥Ðf
.Perl 6 ,
6259 байтПопробуйте онлайн!
источник
Japt ,
22201916 байтПоддерживает ввод до,
639
но пропуски начинают появляться в последовательности после234
(см. Полный список поддерживаемых диапазонов ввода здесь ). Выводит массив строк.Проверь это
I
(64) можно заменить наL
(100), но мы будем вдаваться в неточности научных обозначений и точности. Очевидно, что их фильтрация увеличит количество байтов и увеличит только максимальный ввод736
.источник
Python 2 , 105 байт
Попробуйте онлайн!
источник
Шелуха ,
1817 байтВывод разделен переводом строки
Попробуйте онлайн!
Как?
источник
Желе , 16 байт
Попробуйте онлайн!
Примечание: очень неэффективно. Возвращает список чисел.
источник
ȷ
s (то есть1000
) на20
s (нижний верхний предел) .[12, 24, 48]
.JavaScript (ES7),
102100 байтПечатает все соответствующие подпоследовательности с
alert()
.демонстрация
NB . Этот фрагмент буферизует результаты и выводит их на консоль для удобства пользователя.
Показать фрагмент кода
источник
Haskell ,
7267 байтПопробуйте онлайн!
Сохранено 5 байтов благодаря Laikoni
Я использовал предел,
99
потому что2^99
имеет длину> 27
.источник
length$(show$2^44)++(show$2^45)==28
.Mathematica, 122 байта
вход
Выход
источник
C 170 байт
Попробуйте онлайн!
раскатали:
источник
р , 99 байт
Попробуйте онлайн!
источник
Perl 5 , 76 байт
75 байт кода + 1 для
-a
Попробуйте онлайн!
источник
Japt, 24 байта
Через некоторое время после публикации этого вопроса я выучил свой первый язык игры в гольф. Из-за этого я решил попытать счастья здесь.
Попробуйте онлайн!
Счет не лучший, он даже не хороший, но мне потребовалось много времени, чтобы сделать это.
Я теряю много очков, потому что по ряду причин ã может возвращать только массивы x длины ... Это может быть даже ~ 10 байт, если не это.
Объяснение:
источник
Рубин , 94 байта
Попробуйте онлайн!
источник