Напишите программу, которая печатает «Hello, World!». Но также, если вы берете только первый, третий, пятый и т. Д. Символы вашей программы, полученная программа все равно должна вывести «Hello, World!».
Если ваша программа:
abc
def
Должно появиться «Hello, World!», Но так должно
acdf
Нет решений с менее чем 2 символами.
code-golf
string
source-layout
hello-world
radiation-hardening
Лео Тененбаум
источник
источник
Ответы:
Python 3 , 61 байт
Попробуйте онлайн!
Злоупотребление тем, что
print
является функцией в Python 3 :)Наименьшее партизанское решение вы найдете здесь на PPCG.
становится
источник
[:]
самом деле работал: о Ницца!Кардинал , 29 байт
Попробуйте онлайн!
Удаление любого другого символа удаляет все переводы строки, что все еще приводит к
Hello, World!
:Попробуйте онлайн!
Причина, по которой это работает, заключается в том, что
%
создается четыре указателя инструкций, перемещающихся в каждом из четырех основных направлений. IP-адреса, которые оставляют исходный код, просто удаляются. Таким образом, в первом случае остается только IP, выходящий на юг, а во втором случае остается только IP, выходящий на восток, все остальные просто отбрасываются. В любом случае, выполненная программа тогда просто"Hello, World!
. В"
переключается в режим строки , где каждая ячейка просто печатаемые на STDOUT. Нам не нужно завершать строку, потому что выход из исходного кода все еще завершает программу.Обратите внимание, что та же идея работает в пчелином воске , используя
*
вместо%
и`
вместо"
(это потому, что пчелиный воск был в значительной степени вдохновлен кардиналом, но использует гексагональную сетку).Попробуйте онлайн! (вертикальный) | | Попробуйте онлайн! (горизонтальный)
источник
C 125 байтов
Попробуйте онлайн!
При удалении четных символов:
Попробуйте онлайн!
источник
На самом деле , 2 байта
Объяснение:
H
, как и следовало ожидать, толкаетHello, World!
в стек.Основная программа (
HH
) встретит первуюH
и протолкнетHello, World!
в стек. На второмH
, однако, он попытается использовать два аргумента (поскольку стек должен быть пустым, чтобы выдвинутьHello, World!
) и потерпит неудачу. Однако эта ошибка будет проигнорирована, а затемHello, World!
будет неявно напечатана.Вторая программа (
H
) будетHello, World!
нажата один раз, и это будет напечатано косвенным образом.Это похоже на двухбайтовый ответ Fatalize, но на самом деле это не «обман».
Попробуйте онлайн!
источник
H
будет только выдвигатьHello, World!
пустой стек, а если стек не пустой, он будет ожидать 2 аргумента, поэтому будет ошибка, и ошибки будут игнорироваться. И на самом деле нет неявно не печатать только самый верхний элемент.Луа , 89 байт
Попробуйте онлайн! Как показывает подсветка синтаксиса, это массовое злоупотребление комментариями.
Alternate:
Попробуйте онлайн!
И для удобства, программа для преобразования программы в любую другую символьную форму: попробуйте онлайн!
источник
HHeelllloo WWoorrlldd!!
скучно: PСетчатка , 39 байт
Попробуйте онлайн!
Взятие каждого другого персонажа дает:
Попробуйте онлайн!
Первая программа создает строку с дублированием приветствия. Затем он заменяет каждую пару символов первым. Существует также пустой этап, который заменяет все пустые строки на пустые строки между ними, но это ничего не делает. Вторая программа не соответствует букве "х", поэтому она не заменяет ничего после создания приветствия.
Возможно, еще более забавно, если третий этап немного меняется, первый набор символов не обязательно должен быть одним и тем же сообщением. Это может привести ко многим решениям одинаковой длины, таким как полный и наполовину .
источник
Древесный уголь , 25 байт
Попробуйте онлайн!
Если вы удаляете четные символы, вы просто удаляете команды стрелок, которые указывают направление следующего текста и оставляют следующий код:
Попробуйте онлайн!
Это также печатает приветствие.
источник
Haskell , 85 байт
Попробуйте онлайн!
Каждый второй персонаж удаляется:
Попробуйте онлайн!
Это использует два формата комментариев в Haskell:
{- -}
для встроенных или многострочных комментариев и--
для комментирования остальной части строки.источник
Javascript, 67 байт
Каждое второе письмо удаляется:
Так же, как ответ Хаскелла Лайкони, это использует комментарии.
источник
// * /
на//**/
(что, к сожалению, невозможно в вашем случае из-за/**/alert`Hello, World`
нечетного количества байтов, а не даже как в моем случае .Брахилог , 4 байта
Попробуйте онлайн!
объяснение
~w
записывает свою правую переменнуюSTDOUT
и игнорирует левый аргументḤ
есть"Hello, World!"
, так что это печатаетHello, World!
.Если мы возьмем только первый и третий символы, мы получим
Ḥw
. В этом случаеw
записывает свою левую переменную и игнорирует правую переменную, поэтому он также печатаетHello, World!
.2 байта
Попробуйте онлайн!
Технически это правильный ответ, но он объединяет выходную переменную программы вместо печати в
STDOUT
, так что я думаю, что 4-байтовая программа больше соответствует духу задачи.источник
Haskell, 102 байта
Полная программа:
и с каждым другим удаленным символом:
источник
p u t S t r
и\"
.машинный код x86, 162 байта
PROG.COM Загрузите и запустите его в эмуляторе MS-DOS , например , DOSBox .
после удаления MINI.COM Скачать
Как запустить?
Установите DOSBox для Ubuntu / Debian
Запустить его
В DOSBOX
Как это работает?
Коды работы машины представляют собой инструкции на языке ассемблера .
В MS-DOS для печати char вы будете устанавливать регистры и делать прерывания. Регистр AH будет 0x02, регистр DL содержит ваш символ. Вектор прерывания 0x21.
Крошечная модель MS-DOS COM-файла - хороший выбор, потому что у нее нет заголовков . Он ограничен 64 КБ, но в нашем случае это не имеет значения.
Для остановки программы используйте прерывание 0x20
магия
Если вы хотите выполнить команду кода операции 0xAB с одним параметром 0xCD , вы пишете
В PROG.COM
В MINI.COM
Это равные машинные коды, если вы не используете регистр BL .
Генератор
Преобразовать текстовый файл с шестнадцатеричным в шестнадцатеричный двоичный файл
Показать фрагмент кода
источник
Pyth , 31 байт
Попробуйте онлайн!
становится
Спасибо @CalculatorFeline за указание на ошибку и удаление одного байта.
источник
V , 32 байта
Обратите внимание, что
<esc>
это один символ, например0x1b
Попробуйте онлайн!
Удаление любого другого персонажа дает:
Попробуйте онлайн!
источник
05AB1E , 29 байт
Попробуйте онлайн!
объяснение
После удаления всех остальных символов у нас остается код
Попробуйте онлайн!
объяснение
источник
Mathematica, 62 байта
Он возвращает
"0H0e0l0l0o0,0 0W0o0r0l0d0!0" Null P0r0i0n0t0[0]
и печатаетHello, World!
как побочный эффект. При запуске в качестве программы (не в REPL) возвращаемое значение не будет напечатано.После удаления любого другого персонажа:
Он возвращает
Null ol! rn[Hlo]
и печатаетHello, World!
.источник
Желе ,
2625 байтПопробуйте онлайн!
После удаления каждого второго символа у нас остается следующий код.
Попробуйте онлайн!
Как это устроено
источник
Кубически v2.1 , 222 байта
Попробуйте онлайн!
Каждое другое письмо:
Попробуйте онлайн!
источник
CJam , 32 байта
Попробуйте онлайн!
Взятие каждого другого персонажа дает:
Попробуйте онлайн!
источник
Помогите, WarDoq! 2 байта
Попробуйте онлайн!
H
печатаетHello, World!
,i
это не оп.Помогите, WarDoq! Можно добавить два числа и проверить на простые числа, поэтому он считается допустимым языком программирования для этой мета-записи .
источник
/// , 25 байт
Попробуйте онлайн!
При удалении любого другого персонажа:
источник
PHP, 53 байта
При удалении любого другого персонажа:
источник
Октава,
4945 байтСохранено 4 байта, поскольку Octave не требует скобок для индексации.
Попробуйте онлайн!
И сокращенный:
Попробуйте онлайн!
Объяснение:
В исходном коде буквы в строке продублированы, поэтому мы оставляем их
Hello, World!
при удалении каждой секунды. Некоторые пробелы добавляются, чтобы обеспечить сохранение скобок и апострофов.Индексирование действительно
1:2:end
. Есть 27 символов, и мы не можем использоватьend
или,27
поскольку мы должны удалить символ, поэтому мы идем3 ^ 3
вместо этого. Когда мы удаляем каждый третий символ, происходит индексация(:)
(и некоторые дополнительные пробелы).(:)
означает «сгладить и превратить в вертикальный вектор» . Итак, нам нужно транспонировать его, используя'
. Нам не нужно транспонировать строку в исходном коде, но двойное транспонирование работает, поэтому первая строка транспонируется дважды с использованием''
, а вторая - только один раз.источник
APL (Дьялог) ,
3534 байта-1 спасибо мартину эндеру
Попробуйте онлайн!
'0H0e0l0l0o0,0 0W0o0r0l0d0!0'
сообщение с нулями в качестве сменных символов-заполнителей~
Кроме⍕
отформатированный (stringified)0
число нольОставляя только странные символы, это становится
'Hello, World!'
.источник
T-SQL, 75 байт
Одно- и многострочные комментарии, основанные на LUA-версии CalculatorFeline .
После удаления всех четных символов, некоторые из которых являются переносами строк:
источник
Javascript, 73 байта
Создает строку
a
с содержимымa0l0e0r0t0`0H0e0l0l0o0,0 0W0o0r0l0d0!0`0/0/
, затем удаляет все,0
что нужно датьalert`Hello, World!`//
, то естьeval
«d».Взятие любого другого персонажа программы дает
который предупреждает,
Hello, World
используя синтаксис строки шаблона, так же, как это было в eval'd в полной программе, затем сохраняет результат вызоваa
и включает проницательный комментарий//;vlarpae//,')
.источник
> <> , 47 байт
Оригинал:
После удаления каждого второго символа:
Попробуйте их онлайн: оригинал , модифицированный
Оригинальная программа выдвигает персонажей "Hello, World!" в стек (в обратном порядке) с вкраплением пробелов, затем поочередно печатает символ и удаляет его, пока длина стека не станет равной нулю. Вторая программа делает то же самое, за исключением того, что инструкции по удалению
~
пропали.Если вы не возражаете против остановки с ошибкой, мы можем взять лист из книги Кардинала Мартина Эндера : модифицированный код
и оригинал такой же, но с символами новой строки, вставленными между всеми символами, для 39 байтов. Попробуйте их онлайн: оригинальные , модифицированные .
источник
,,,, 34 байта
При удалении четных символов ...
объяснение
Со всеми персонажами:
Без четных символов:
источник
Brainfuck, 155 байт
Попробуйте онлайн!
Каждый второй персонаж удаляется:
источник
Желе , 32 байта
Попробуйте онлайн!
-2 байта благодаря ответу @ totallyhuman
Теперь мой дурак>. <
Иди, проголосуй, что тоже: D
источник