Вызов:
Концепция достаточно проста: напишите полную программу для вывода собственного кода оценки гольфа!
Выходными данными должны быть только количество байтов вашей программы и трейлинг bytes
.
НО ПОДОЖДИТЕ ..... есть одно ограничение:
- Ваш исходный код не может содержать какие-либо цифры из вашего числа байтов
- Так что, если ваш счет
186 bytes
, ваша программа не может содержать символы1
,6
или8
Пример вывода:
315 bytes
27 Bytes
49 BYTES
Дополнительные правила:
- Ненужные символы, пробелы и новые строки запрещены в исходном коде, однако конечные пробелы и новые строки вполне допустимы в выходных данных.
- Между числом и
bytes
на выходе должен быть один пробел - Буквы нечувствительны к регистру
- Нет самостоятельной проверки или чтения исходного кода
стандартные лазейки запрещены
это код-гольф , так
Самый короткий код в байтах побеждает!
bytes
я подозреваю, предполагается, что в число должно быть включено количество байтов, необходимых для печати текста:bytes
1 bytes
или1 byte
? (имейте в виду, что уже есть 41 ответ, хотя я не думаю, что они были затронуты)Ответы:
JavaScript, 19 байт
Octal был изобретен для двух целей:
Попробуйте онлайн!
источник
Perl 5 , 16 байт
Есть много других способов получить,
16
но этот мойПопробуйте онлайн!
источник
&
|
^
а~
также могут применяться к строки и работать с ними, как в списке значений ASCII (если и только если обе стороны являются строками). Для|
и^
это работает так, как если бы сокращенная строка была расширена\0
. После этого выполняется простое упражнение по поиску комбинаций букв, которые приводят к желаемому результату,7 , 23 символа, 9 байтов
Попробуйте онлайн!
Это довольно сложная задача для языка, который полностью состоит из цифр, но мне это удалось ...
Это всего 9 байтов в кодировке 7. (Строго говоря, это 8⅜ байтов (23 × ⅜ - ¼, потому что последние два завершающих 1 бита могут быть опущены), но впервые требование PPCG округлить до целого числа байтов фактически является преимуществом, потому что это означает, что дополнительные завершающие биты 1 необходимы и поэтому не запрещены вопросом.) Обратимый шестнадцатеричный дамп:
Основная проблема написания этой программы в 7 заключалась в том, чтобы записать в нее менее 10 байтов (то есть писать 7 без использования
0
или1
это довольно сложно). В ней используется та же структура, что и в стандартной программе «Hello world»:Другими словами, мы начинаем с создания двух разделов пространства данных; у нас есть два литерала, каждый из которых добавляет туда последовательность команд. Второй раздел (они помещаются в стиле стека, поэтому first push = last pop) - это довольно произвольная последовательность команд, но она проталкивается с использованием последовательности команд
5434004514133240105
(таким образом, создавая последовательность данных5434664574733246765
; при обсуждении 7 в тексте я обычно использую обычный шрифт для команды, которая выдвигает литерал и выделяется жирным шрифтом для соответствующего результирующего литерала). Первый раздел проталкивается с помощью последовательности команд403
, производя463
. Затем первый раздел копируется обратно в программу (неявное поведение 7).463
Теперь состоит из (жирным шрифтом) команды , которые делают что - то немедленно, а не (не жирный) команды , которые просто нажмите литералов.4
переставляет разделы, чтобы получить наш "строковый литерал" в первом разделе. Затем0
выполняется операция, для которой 7 наиболее известна: взятие части пространства данных и восстановление последовательности команд, которая, скорее всего, создала ее. В том случае , когда исходная последовательность команд была все0
-5
это 100% точными ( что неудивительно, так как эти команды просто передавать данные и , таким образом , оставить очевидные доказательства того , что они делали), и таким образом мы получаем нашу исходную последовательность5434004514133240105
обратно. Наконец,3
печатает это.Итак, остальное, на что нужно обратить внимание - это кодировка строки. Это имеет свой собственный предметно-ориентированный язык:
(В наборе символов «цифры и общие символы» отсутствует «выбор набора символов: строчные буквы» - сначала нужно пройти другой набор символов), поэтому мне нужно было использовать верхний регистр, чтобы играть в гольф достаточно коротко, чтобы поместиться под эффективными символами. -байт лимит.)
источник
Холст , 8 байт
Попробуй это здесь!
Более интересное 20-байтовое решение:
Попробуй это здесь!
источник
блядь , 53 байта
Попробуйте онлайн!
Еще одно представление с большой буквы
bytes
. Найден с помощью превосходного помощника BF-crunch от primo.источник
PHP, 14 байт
источник
bytes
части вне?>
? Попробуйте онлайн!PHP старше 7,2 , 13 байт
Принимает настройки по умолчанию (предупреждения E_NOTICE отключены) и версию PHP старше 7.2.
Необходимо расшифровать
xxd -r
Или, если вы предпочитаете Base64
Попробуйте онлайн!
источник
Stax , 5 байт
Запустите и отладьте его
Распакованный, это выглядит так. Режим упакованного исходного кода делает этот вид тривиальным и неинтересным.
Если вы не хотите использовать режим упакованного исходного кода,
6^p`5l@
работает на 7 байт.источник
restricted-source
, а не в языке. На самом деле это самый прямой способ производства"5 bytes"
с использованием Stax.R , 16 байт
Попробуйте онлайн!
источник
bytes
". Программа составляет 16 байт.cat
по умолчанию добавляет пробел между его входами.object.size
выводит в правильном формате (сbytes
включенным по умолчанию). Досадно, самый короткий я смог найти 17:object.size(0)-39
. TIOobject.size(0)/3
.Python 3 ,
252418 байтПопробуйте онлайн!
источник
3*8
должно быть хорошо05AB1E , 6 байтов
Попробуйте онлайн!
Альтернативы
₂¤
включают в себя:5>
,₁¤
,3·
источник
Баш, 21 байт
«Прочитайте свой собственный исходный код» здесь явно не победитель, но никто другой не представил его, так что, черт возьми.
Попробуйте онлайн!
источник
Сетчатка , 15 байт
Эта программа подсчитывает количество подстрок, по крайней мере, с двумя символами в строке «байты», а затем печатает этот счетчик и саму строку.
Попробуйте онлайн!
источник
PHP + HTML, 16 байт
Да, это очень близко к злоупотреблению лазейкой, но я чувствовал, что это необходимо опубликовать. А использование PHP означает , что этот ответ технически это написано в Тьюринг-полный язык программирования. Конечно, любой другой подобный язык шаблонов HTML будет работать так же хорошо.
Живая демоверсия (без PHP):
источник
dc ,
1411 байтовПопробуйте онлайн!
-3 байта
@Cows quack
источник
[ bytes]Bnn
бреет несколько байтовMATL , 13 байт
Попробуйте онлайн!
Это выдвигает строку '57 $ f} xiw 'и вычитает
4
, чтобы получить13 bytes
. Это преобразуется в символы с помощьюc
.источник
6EV' bytes'h
это 12 (я только собирался опубликовать это)Октава , 22 байта
Попробуйте онлайн!
источник
Октава , 23 байта
Попробуйте онлайн!
И это:
Попробуйте онлайн!
источник
4
из (коды ASCII)'67$f}xiw'
дает коды ASCII'23 bytes'
. Затем, конкатенация с пустой строкой''
преобразует ASCII-коды в символыPetit Computer BASIC, 11 байт
Использование запятой в операторе печати переместит курсор на следующую кратную текущего размера вкладки. В SmileBASIC это по умолчанию 4, поэтому будет выводиться
11 bytes
(2 пробела), но вместо этого PTC BASIC использовал 3, поэтому выход имеет правильный интервал.источник
APL (Dyalog Unicode) , 12 байт
Полная программа, которая неявно печатает в STDOUT.
Попробуйте онлайн!
,⍨
is добавляет строку к результату умножения. Стандартное отображение данных смешанного типа в APL ставит пробел между числом и последующим текстом.источник
Brain-Flak , 100 БАЙТОВ
Попробуйте онлайн!
Выводит
bytes
деталь во все заглавные буквы. Кто-то, знакомый с Brain-Flak, может быть действительно смущен((<>))
вначале, но будьте уверены, они только там, чтобы злоупотреблять высотой стека nilad ([]
), и ни один из0
производимых ими файлов не печатается.источник
Haskell , 26 байтов
Попробуйте онлайн!
29 байт
Попробуйте онлайн!
источник
$
вместо них.Пробел , 112 байт
Просто потому, что никто еще этого не сделал
Попробуйте онлайн!
Печатает "БАЙТЫ" заглавными буквами, поскольку заглавные буквы имеют более короткие двоичные коды ASCII. Команды в программе, в моем собственном виде составлены видимые обозначения:
источник
Java 5 или 6, 44 байта (полная программа)
Отсутствует TIO-ссылка, потому что Java 5/6 старая. В Java 5/6 было возможно иметь перечисление с кодом вместо обязательного
main
-method, что делало его короче для полных задач программы.Также могут быть добавлены ошибки
java.lang.NoSuchMethodError: main\nException in thread "main"
в STDERR после печати в STDOUT, что хорошо в соответствии с мета (но если вызов запретил бы дополнительные ошибки в STDERR,System.exit(0);
можно добавить (и восьмеричные числа должны быть обновлены), чтобы предотвратить ошибку.Предложил @ OlivierGrégoire (и его соответствующий Java наконечнике ).
Java 8+, 74 байта (полная программа)
Попробуйте онлайн.
Java 8+,
1615 байт (лямбда-функция)-1 байт благодаря @ OliverGégoire .
Попробуйте онлайн.
источник
37*2
содержит7
, поэтому он не действителен. Ваше альтернативное решение хорошо, хотя.v->0xE+"bytes"
илиv->0xF+" bytes"
. Не могу проверить, но все равно должно работать. Ничто не говорит, что счет и «байты» должны быть разделены.FerNANDo , 79 байт
Попробуйте онлайн!
источник
Applescript, 15 байт
Да, я иду туда.
источник
Your source code can not include any of the digits from your byte count
”
многобайтовый символ (3 байта в Юникоде, если я правильно помню), так что это больше 11 байтов?Forth (gforth) ,
1413 байтовПопробуйте онлайн!
источник
> <>, 13 байт
Попробуйте онлайн!
источник
Пакетная, 32 байта
COMSPEC
как правило,%WINDIR%\system32\cmd.exe
поэтому я извлекаю подстроку от 10 до 8 символов с конца. Старая 16-байтовая самореферентная версия:К счастью, количество байтов не было кратным 10.
источник
JavaScript,
1615 байтисточник
_=>5*3+' bytes'
5