На языке по вашему выбору напишите программу, которая точно выводит символы, Hello world!
за которыми следует новая строка. Код:
- не следует использовать какой-либо символ более двух раз (буквенно-цифровой, символ, пробел ... что-нибудь)
- не следует использовать какие-либо внешние ресурсы
- не должен использовать какой-либо пользовательский ввод
- не должен ничего выводить
Пример правильной программы на Python:
print("He%so world!"%(2*'l'))
Пример неверной программы на Python (символ «r» используется три раза):
print("Hel"+chr(108)+'o world!')
Победителем считается тот, кто наберет наибольшее количество голосов через 14 дней.
РЕДАКТИРОВАТЬ: Победитель был выбран! Спасибо всем за вашу работу над этим вопросом!
popularity-contest
restricted-source
hello-world
мистифицировать
источник
источник
Ответы:
Рубин (1,9+)
Так как это конкурс популярности, давайте попробуем не использовать ЛЮБОГО из персонажей «Hello world!» при использовании других символов только максимум два раза:
Это 40 символов между прочим.
удар
И этот использует магию Юникода.
Примечания:
Код:
Для тех, у кого не установлен правильный шрифт, это выглядит так:
Вот hexdump:
Вы должны запустить его на машине, где кодировка по умолчанию - utf-8. Я пытался на OSX10.8, используя iTerm2 со следующей средой:
PHP 5.4
Это использует zLib: (к сожалению, он использует символы
e
иo
)HexDump:
+1
Вот код ruby 2.0, который я использовал для проверки дубликатов:
источник
Hello world!
за которыми следует новая строка»ascii//translit
транслитерирует символы юникода в базовый формат ascii. И, конечно, echo добавит новую строку, так что эта соответствует спецификации (если мы не учитываем сходство октетов)Hello World?
вместоHello World!
Вы должны использовать более выразительные языки.
Китайский,
6 43 знакаЗапуск гугл переводчика на этом производит
Hello world!
(спасибо @sreservoir и @Quincunx за обновление)
источник
你好世!
喂世!
за счет ... ну, больше ничего не тратится.HQ9 +, 1 символ
сохраняя это простым :)
источник
print Hello World
вопросы на самом делеwho can submit a HQ9+ answer faster
вопросы.С, 192 символа
Так как это не гольф, я решил немного повеселиться и попробовать использовать каждого персонажа ровно два раза (добавив как можно меньше комментариев, потому что это скучно). Я понимаю, что я не очень хорошо справлялся, так как мой код также содержит массу скучного «мертвого» кода (не в буквальном смысле, а в смысле символов-заполнителей, используемых только для того, чтобы выполнить требование). Во всяком случае, это было удивительно сложно (но весело) с ограничением в два символа, поэтому, к сожалению, я не смог придумать ничего более интересного. Это дало мне идею для новой проблемы, хотя ...
(Обновлено за комментарий @ ugoren.)
источник
.
, используя его для дробей. Также вы можете объявить массив и использовать[]
..
; Я думал только об использовании его для доступа к структуре. <s> Что касается объявлений массива, то у меня нет,
s из-заprintf
вызова, и у меня тоже нет;
s, поэтому я не уверен, как я могу объявить один. </ s> Да, я мог бы заменитьATION_
. ..Команда Vim (18 нажатий клавиш)
iHe
Esc3al
Escio Wor
Rightd!
EnterНе повторяет нажатие клавиши более двух раз.
Это своего рода нарушает правило «пользовательского ввода», так как это все еще пользователь, который должен вводить эту последовательность, но я полагаю, если вы сохраните ее в виде макроса или nnoremap, это будет засчитано, поскольку вы просто запускаете ее без явного выполнения каких-либо действий. вход, чтобы это произошло.
Он также
nocompatible
должен быть установлен, что может считаться использованием внешних ресурсов, поэтому я предоставил еще один вариант ниже:Команда Vim (21 нажатие клавиши)
iHe
Esc3al
Escio Wor
Ctrl+[$ad!
EnterЭтот вариант не требует
nocompatible
установки, хотя он работает Escтри раза, используя Ctrl+[вместо него.источник
Right
,Esc
иEnter
, они не в буквальном смысле этих символов. Vim имеет дело с нажатиями клавиш, которые я считаю эквивалентными персонажам для целей этого конкурса (и правила «не повторяйся более двух раз»). Я использую толькоi
нажатие клавиши дважды, и<Right>
нажатие клавиши один раз. Что касаетсяE
, я никогда не использую это вообще - но я использую<Esc>
дважды и<Enter>
один раз.l
с.:set nocompatible
.Right
не очень вим-у.Пит - Никаких персонажей!
источник
Perl, 29 символов
Этот ответ включает в себя х-рейтинг засорения!
Perl, 23 символа
Более короткий, но не порно обуви. :-( Та же основная идея, хотя ...
Perl, 20 символов
Скучный ...
источник
Powershell, 20
источник
Скриптинг , 11 символов
Я видел эту прекрасную программу HelloWorld в списке программ esolang Hello World .
источник
Scala:
3429 символовЯ горжусь собой за это:
Было действительно трудно преодолеть дубликаты «я», «к», кавычки и скобки. Затем я обнаружил старую
printf
функцию Java , которая с радостью преобразует числа в буквы при%c
наличии спецификатора формата.Обновить
MrWonderful сделал замечательную вещь, указав, что целую кучу символов можно сохранить, используя мой второй 'l' в строке вручную!
источник
printf
содержитr
как делаетworld
. То же самое касается письма,o
которое используется более одного раза. Это основано на моей интерпретации следующего утверждения из ОП «Пример неверной программы на Python (символ« r »используется три раза):print("Hel"+chr(108)+'o world!')
»chr
Python 3 [38 байт]
Я бы не рассматривал
import __hello__
как внешний ресурс.источник
Perl: 34 символа
Образец прогона:
(Ничего страшного. Размещено хотя бы раз в моей жизни
s///
с этими причудливыми разделителями.)источник
PHP, 33 символа
Мне просто нравится, сколько PHP прощает и понимает!
До того, как он был удален (или, если он все еще там, я полностью ослеп), я увидел комментарий, в котором говорилось: «Нет мозгов * ck?: D». Ну, как вы знаете, написать BrainF * ck практически невозможно. Но мне удалось закодировать это, только для lulz.
Если у вас нет интерпретатора BF, приведенный выше код просто печатает PHP: P
источник
Hel
не заключена в кавычки. Кроме того, я никогда не слышалstr_rot13
раньше..
), поставивHel
перед<?=
.Hel<?=str_rot13("yb jbe")?>ld!
HTML скрипка - 21 символ
источник
\n
так, я бы сказал, имеет<br>
значениеr
повторяется в решении. Я неправильно истолковал требования?Рубин: 27 символов
Образец прогона:
Рубин: 25 символов
(На основании комментария Ваче.)
Рубин: 23 персонажа
(Копия ответа Powershell Данко Дурбича .)
источник
puts 'He'+'l'*2+'o world!'
на один символ короче!puts"He#{?l*2}o world!"
p
включает в себя цитаты в выводе. Я предпочитаю строго придерживаться требуемого формата вывода. Но вы правы, пространство не нужно. Спасибо.JavaScript, 66 символов
Вдохновленный FireFly, каждый символ, используемый этим кодом, используется ровно дважды.
источник
C - 43 персонажа
Выход
Количество персонажей
источник
main
т. Д.?i
).JavaScript [37 байт]
Слишком примитивно, не так ли?
источник
nginx.conf
В бою:
источник
set
. Теперь в нем всего 3 пробела, любой из которых может быть табуляцией!Команда Emacs (15 нажатий клавиш)
Если тот ответ vim является законным, то это должно быть тоже :)
Шутки в сторону, макросом тоже может стать :)
Если оставить в стороне больше чепухи, я, вероятно, смогу выжать еще немного, но на данный момент это кажется достаточно хорошим (поскольку оно превосходит vim).
PS, пожалуйста, игнорируйте всю мою ерунду (я (редко, но) тоже использую vim!).
источник
Befunge 98
Вот версия, где каждый персонаж появляется дважды.
Оставляет кучу мусора в стеке.
В качестве бонуса каждый персонаж имеет что-то сделанное с IP.
источник
Malbolge
источник
Hello, world.
вместоHello world!\n
:( Попробуйте онлайн! Впечатляет, но недействительно.На самом деле я не люблю обманывать: P
питон
источник
TypeError
.print("!dlrow os%eH"[::-1]%('l'*2))
работать в обеих (Python2 и Py3K) версиях.GolfScript
Подставляет две новые строки (к счастью, третья, необходимая для подстановки, предоставляется встроенным
n
), используя оба типа строкового литерала, чтобы избежать четырехкратных копий кавычки. Посколькуl
это единственный символ, встречающийся более двух раз в исходной строке, это не так уж сложно.источник
o
. Правила гласят, что нельзя иметь персонажа более двух раз .Хм.
В C, учитывая эти правила, мы можем иметь только одно
#define
(из-заi
иn
) и самое большее два вызова функции ИЛИ определения ((
и)
).Я предполагаю, что есть только один способ сделать это (хотя я, вероятно, ошибаюсь):
источник
puts()
вместоprintf()
.o
вworld
?BASH
Cred @manatwork
источник
-e
, используя специальный$'…'
синтаксис:echo $'Hel\x6c\x6f world!'
.C - 46 символов
main(){printf("He%clo wor%cd!\x0d",'l',108);}
Распечатывает:
источник
main(){printf("He%clo world!%c",108,10);}
должны работать, и сэкономит вам несколько символов.Фуга
Из esolang wiki:
И вы можете слушать исходный код .
источник
PHP
32 символа
Обратите внимание, что я не использую символ более двух раз, так как l! = L
Также обратите внимание, что, несмотря на то, что Stack Overflow удаляет его в представлении, после
!
.источник
XQuery, 19 символов
источник