Что я хочу:
Проще говоря, я хочу текстовый дисплей, который запрашивает ввод n
, а затем показывает это значение на дисплее! Но есть подвох. Каждый из «истинных» «пикселей» (заполненных) должен быть представлен этим числом n
.
Пример :
Вам дают вход n
. Можно предположить, n
будет одна цифра
Input: 0
Output:
000
0 0
0 0
0 0
000
Input: 1
Output:
1
1
1
1
1
Input: 2
Output:
222
2
222
2
222
Input: 3
Output:
333
3
333
3
333
Input: 4
Output:
4 4
4 4
444
4
4
Input: 5
Output:
555
5
555
5
555
Input: 6
Output:
666
6
666
6 6
666
Input: 7
Output:
777
7
7
7
7
Input: 8
Output:
888
8 8
888
8 8
888
Input: 9
Output:
999
9 9
999
9
999
Вызов:
Сделайте это как можно меньше байт.
Я буду принимать только те ответы, которые отвечают всем требованиям.
Окружающий пробел необязателен, если цифра отображается правильно.
Кроме того, <75 байт - это мой голос, самый низкий показатель, но я всегда могу изменить принятый ответ, поэтому не отчаивайтесь отвечать.
code-golf
ascii-art
kolmogorov-complexity
VortexYT
источник
источник
Ответы:
SOGL V0.12 , 30 байтов
Попробуй здесь! Сжатый строка
■'τč▲Β►║⁰ΡāQšJ┘tXdnοO¹‘
являетсякоторый (начиная с 1, заканчивая 0) числа, строка за строкой, число к номеру. Остальные
источник
-
), а все остальное легко. Мне интересно, каким онлайн-тестером вы пользовались? Я не сделал ни видел.JavaScript (ES6), 88 байт
Числа кодируют, какие квадраты содержат пробелы для данной цифры, например, нижний левый угол имеет значение 146, потому что 1, 4 и 7 не используют его, а 146 = 2¹ + 2⁴ + 2⁷.
источник
05AB1E ,
403938 байтПопробуйте онлайн!
объяснение
источник
Japt , 43 байта
Содержит некоторые непечатные. Попробуйте онлайн!
Подсчет: 13 байт сжатых данных, 9 байт для его распаковки и 21 байт для формирования выходных данных.
объяснение
Ungolfed код:
Существует ровно 4 разных варианта строки: (
#
представляет цифру)Таким образом, каждое число может быть сохранено как набор из пяти цифр от 4 до 4. Поскольку каждое число может быть затем сохранено в 10 битах, общее количество составляет 100 битов, что соответствует 13 байтам. Я пропущу процесс сжатия и вместо этого объясню декомпрессию.
После распаковки сжатая 13-байтовая строка выглядит следующим образом:
Обратите внимание, что это не получится, если начнется любой из 4-значных циклов
0
, так как начальные нули будутs4
пропущены при запуске. Мы можем исправить это с помощью0
представления#
, которое появляется только три раза, и ни один из них не выпадает в начале запуска из 4 цифр.Итак, для того, чтобы наша строка из 50 цифр хорошо сжималась кусками по 4, нам нужно было добавить две дополнительные цифры. Добавление их в начало строки означает, что мы можем отрубить их одним байтом
¤
.Смущает то, что у Japt нет встроенной функции для разбиения строки на куски длиной X. Однако у него есть встроенная функция для получения каждого X-го символа, поэтому мы можем хранить все данные, сначала кодируя все верхние строки, а затем все вторые ряды и т. д.
Итак, теперь у нас есть 5-значная строка, кодирующая цифру, которую мы хотим создать, например,
32223
для0
.Чтобы объяснить магическое число, вернитесь к четырем отдельным строкам. Если вы замените
с
#
на1
и0
, вы получитеТранспонирование этого и затем объединение в одну строку дает нам
101100010111
. Преобразование в десятичное число и, вуаля, у вас есть 2839. Обратный процесс отображает цифры0123
в четыре двоичные строки, показанные выше.Почти сделано! Теперь осталось только добавить пробелы и цифры:
И прежде всего, неявный вывод заботится обо всем остальном. Извините, это объяснение такое длинное, но я не вижу реального способа сыграть в него, не сделав его менее понятным (если оно понятно ...)
источник
JavaScript (ES6),
115111 байтПринимает ввод в виде строки.
Как это устроено
Кодировка паттернов
Четыре различных моделей
"XXX"
,"X.."
,"..X"
и"X.X"
могут быть сжаты , как"XXX...X.X"
и экстрагируют следующим образом:Подставив ввода цифр
n
для"X"
и с использованием реальных пространств, это дает выражение:Цифровое кодирование
Используя идентификаторы шаблона, определенные выше, каждая цифра может быть представлена 5 * 2 = 10-битной величиной.
Например:
Полный список:
Однако деление этих значений на 2 позволяет сохранить два байта. Поэтому вместо этого мы храним:
демонстрация
Показать фрагмент кода
источник
Утилиты Bash + GNU, 114
Вероятно, здесь есть еще несколько возможностей для сжатия, но вот для начала:
объяснение
Каждый ряд каждой цифры является одним из этих четырех шаблонов:
Обозначая эти 0-3, каждая цифра может быть представлена 5-ю цифрами от 4 до 4. Например, 0
32223
, и полный список цифр закодирован в base-4 как32223000003031330303223003130331323300003232332303
. Это закодировано в шестнадцатеричном видеEAC00CDF33AC373DEF00EEFB3
.dc
преобразует гексEAC00CDF33AC373DEF00EEFB3
в базу-4.fold
ставит 5 цифр по 4 в каждой строкеsed
:x
ы) для каждой строки данной цифры вместе с новой строкой в конце каждой строкиx
es на цифру n.Попробуйте онлайн .
источник
s/1/x \n/g
сs/1/x\n/g
, так как эти места не будут визуально влияют на выход.MATL ,
4543 байтаПопробуйте онлайн!
объяснение
источник
Сетчатка,
166164163 байтаДва пробела на третьей строке снизу
Попробуйте онлайн!
Усовершенствованный вариант @ Okx в растворе
источник
Pyth 82
8591100байтВозможно, много игры в гольф, мой первый вызов.
источник
Пакетный файл, 8 + 184 байта
Вот мое обязательное пакетное решение. К сожалению, стандартный метод выполнения этого - более 300 байтов в пакете, поэтому мы прибегаем к гораздо более дешевой тактике.
В текущем каталоге у меня установлено 10 файлов с именами от 0 до 9. В каждом из них есть соответствующая сетка пикселей 5x3. Например:
Количество байтов для них:
Все еще бить Java.
источник
Рубин, 94 байта
Неуправляемый в тестовой программе
источник
PHP, 115 байт
Попробуйте онлайн!
расширенный
Кодировка Попробуйте онлайн!
источник
Сетчатка , 125 байт
Попробуйте онлайн! (Удалите набор тестов в заголовке, чтобы проверить отдельные входные цифры.) Последняя строка содержит два пробела.
источник
PowerShell,
126120113109101Юникод это весело. Символы также намного короче, чем цифры. Приведенный выше код содержит U + 0000 дважды, поэтому его нельзя скопировать напрямую (хотя и отлично работает в файле). Следующий код может быть скопирован:
Мы теряем три байта, потому что нам нужна подпись UTF-8 в начале. В противном случае строка не будет работать.
источник
Сетчатка , 190 байт
В последней строке есть два пробела,
но SE не хочет их отображать: /Исправлено!Попробуйте онлайн!
источник
a
с тремя цифрами и новой строкой. (Может быть, с помощью lookaheads?)Java 8,
278214210204 байтаПорт ответа @Neil 's Retina . Принимает вход как
String
.Попробуй это здесь.
источник
Python 2 ,
174125 байтПопробуйте онлайн!
источник
PowerShell ,
159135128118 байтТекущий ответ: удалены посторонние имена переменных
Попробуйте онлайн!
Я должен посмотреть, смогу ли я получить некоторые хитрости из других ответов: P
РЕДАКТИРОВАТЬ Умнее с вызовом мега строки
EDIT2 Переключено на использование строки чисел для индексации
$a
для сохранения 7 байтов. Хотя мне нравились мои предыдущие вызовы имен динамических переменных в приведенном ниже коде (135 байт)источник
Древесный уголь ,
6138 байтПопробуйте онлайн! Ссылка на подробную версию кода. Примечание: конечный пробел. Объяснение:
Разделите (сжатую) строку на группы по 5, возьмите строку с индексом, заданным входными данными, и сопоставьте символы в группе (которые всегда равны 1, 4, 5 или 7).
Преобразуйте символ из основания 10 в трехзначное основание 2, используя введенный символ и пробел в качестве цифр. Затем 5 результатов неявно печатаются в отдельных строках.
Общий порт немного скучен, поэтому вот более идиоматичный 61-байтовый ответ:
Попробуйте онлайн! Ни одна подробная версия, так как девербосификатор не понимает списки направлений или даже разнонаправленные внутри обычных многоугольников. Объяснение:
Каждый путь указывается с использованием списка направлений (
←↑→↓
). Четыре используемых ярлыка сохраняют байты:L
представляет↑→
,¬
представляет↓←
,T
представляет, в→↓←
то время как+
представляет→↓←↑
, хотя для того, чтобы список был распознан как список направлений, должна оставаться как минимум одна стрелка (поэтому, например,TT
ее нельзя использовать3
).источник
Желе ,
3532 байтаПопробуйте онлайн! или увидеть их всех .
То же, что и метод Дзаймы.
источник
Perl 5
-Mbigint -pa
, 101 байтПопробуйте онлайн!
источник
Python 3 , 119 байт
Попробуйте онлайн!
Каждый «пиксель» представлен как целое число, где каждая степень два указывает, является ли пиксель сплошным. Это использует тот факт, что три правых угла всегда являются цифрами.
источник
JavaScript (ES8), 87 байт
источник