Подавить уникальных персонажей


23

Это очень просто: ваша программа или функция должна сгенерировать следующий текст:

Elizabeth obnoxiously quoted (just too rowdy for my peace): "THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG," giving me a look.

Хорошая печать

Вы можете написать программу или функцию , которая возвращает вывод в виде строки или печатать его в STDOUT (или ближайшую альтернативу). При желании вы можете включить один завершающий символ новой строки в вывод.

счет

Количество байтов в вашем коде, умноженное на количество уникальных байтов в вашем коде

Самый низкий балл побеждает.

Например, ответ «мозговая шутка» или «пробел» имеет здесь огромное преимущество, так как множитель будет очень низким (8 и 3 соответственно). Однако, как правило, написание программ на этих языках дает гораздо более длинный код, который может свести на нет это преимущество.

Стандартные лазейки, которые больше не смешны , запрещены .


Я предполагаю, что корпус должен быть точным?
— EnragedTanker

@crayzeedude да, в этом
— вся

Хорошо. Просто уточняю. : p
— EnragedTanker

1
@CarpetPython В песочнице было несколько споров по этому поводу, и в итоге я решил, что нет способа НАСТОЯЩИМ выровнять игровое поле. Обратите внимание, что пробелы и бессонница имеют самые высокие оценки в любом случае!
— durron597

2
Как я где-то писал, если мы предположим, что использование большего количества байтов для компенсации менее уникальных символов ведет себя аналогично преобразованию чисел в разные базы, то приблизительно bytecount~Log(X,unique), с некоторой константой X для этой задачи. Таким образом, уникальная константа. Вычисление этой оценки (log2) дает python2_mbomb007 728, python2_carpetpython 744, ruby 756, Fish 825, Insomnia 1148, cjam 1277, whitespace 1484, brainfuck 3546. Так что, кроме ответа «
— бред»

Ответы:


7

Бессонница , 575 байт * 4 = 2300

dyedd=dyyyye=d=yd=dddde=ded=deey=eyy=de=edd=eydyee=yeyy=yey==ddyee=eydee=y=eyeedd=dde=yddd=eede=yedde=eeyd==yeyy=yyddy=eyy=dy=dddye=dyey=ede=yddd=dde=de=yyye=yyye=ddyyy=dyy=yeyddy=eyyyde=eed=ddd=yd=edyyd=eeydd=yedd=eye=eee=eeyy=yyyedde=d=eyyyedy=d=yddyye==dyyede=ddd=eydd=yd=ddde==eeeeyy=yeyd=deyy=yyy=ydy=dy=dd=e=ey=dddddy=yeey=ey=eed=ddd=eedy=ddddde=ydeyy=edd=ydy=ddy=yeedd=ydde=dde=edyye=ded=yeed=dddddde=eedy=eyde=ydy=ydydd=eyydd=dd=dddd=ddyye=ydeey=ed=eeeye=y=ydydde=eyyd=eyee=dy=edeyed=dyed==eyyddey=dd=yddd=yddd=de=ddedy=eyydd=eeedy==eyyydeee=d=d=eydd=yey=dyy==yyyedy=

Использует 4 символа dye=.

Решение 1b (не опубликовано): 783 байта * 3 = 2349

eeeeyeeyy=eeyy=yeyye=yyyeeyye=eeeye=yeyey=eyeyyy=eyy=eeyeye=yeyeyyy=yyeeye=yeyy=yey==yyeyeyeye=eyyey=y=yyyyyy=y=eyyeyyyyyyye=eeye=yyeeyye=eyeyeyyy==yeyy=yeyyyeyye=yyyeeyy==eeyyeee==eeyye=yyyyeyyeyyye=yyyyyyy=yeye=eyyyyy=eeye=eeyeeeeey=eyeye=eeee=yeyyye=eyyyyye=y=eeeyyy=eyyeyee=yyy=eyye=yeyeeee=yyeyeyyyy=eeyy=yyyyy=eyyyy=yyeeyye=e=eyyyyy=eyey==eyeyy=yyyyyeyeyeye=ye=yyyyyy==eeeeyy=yeye=yeyyey=yyy=eyyyeeeye==yeeyyeyy=e==yeeeyyyeyy=yeey=ey=eee=eyeyy=yyeeee=yeeyyyyy=yee=yeyyy=yeeeeyy=eyeeeeeye=eeeyy=yyeeeeyyye=yey=yyyyeeyye=yyyyyyy=yeee=eeeeyyeye=eyeeye=eeyyeyyy=eeyee=yyyyyeeyy=eee=eeyyeyyyyy=eeey=eyyeeyy=eyyeyyy=eeeeyeee=eeeye=y=yyyeyy=yyeeee=yyeyey=ey=eyyyyyeyyy=yeye==yeeyyyeyy=yeye=yyyyeeyy=eeeyyeeyyy=yeeyeyyy=eeyye=eee=eyyye==eyeyeyyyyy=e=eeyeeye=yeey=eyeyy=eyeye=ey=eyyeye=

Использует только 3 символа ey=.

Решение 1: 826 байт * 3 = 2478

yoyoy~oyoyo~oyooyy~ooyyoyy~ooyyyyoy~~yoyyo~ooyoooyooo~yoyyo~oyoyoyyy~yyo~oyyoo~~ooooy~oyyyyy~oyoyoo~~oyyyoooyy~~oyoyooyyy~yyooo~yoyo~yoyyyyo~yooyo~y~yyoyyyooyy~oyyooy~ooyoy~oyyooy~ooyyo~yoyyoo~o~ooyo~yooyyoo~yoyoy~ooyyyyooo~oyoyyo~yyoyyyoo~yyo~yyooyyo~yoyyoooy~~yoyyyooyoyy~oyoyyy~yoooyyoy~yooyy~yooyyo~yyooyyoo~oyoyo~oyyy~oyyo~oyyoyo~oyyyoo~oyoyyoo~yooyo~ooooo~~yoyyoyyoyoo~yoyyooo~y~ooooy~yyyoy~ooooyyoyyoy~oyyoo~oyyoyo~yoyyyooy~oyooo~yoyyoyy~yyyyyo~oyooy~oyoyy~yoyyyoy~ooyoy~yoyyoooy~~oyyyo~ooooooy~yooyoyyoyo~yooyyo~oooyyo~yoyooyyo~oyyy~o~yooooy~oyoyyooooy~~yoyyooyyo~oy~yyyoyyyyy~yoyyyoy~yooo~oooy~oooooyyoyyyo~yoyyo~y~oooyyyoyoo~yyooooyoyy~y~oooyyyoy~~yoy~oyyoyoyyy~yoyyyyy~oyooo~yyyyooo~yooyyoy~yooyo~yoyyyo~yyoyyyo~o~ooooooyoy~oyoyyoy~yyoooo~ooooyy~oyoyoy~ooyyo~yyoooyo~yyyyyo~oyyo~yooyyooyyoy~~ooyyyyoyyy~ooyyo~yyooo~

Только использует 3 -х символов: yo~. Программа используется для генерации этого.

В настоящее время все программы используют только инструкции 0, 1, 2, 6. Другими словами, они манипулируют битами в одном байте и распечатывают результат.


19

CJam, 266 281 456 байт * 14 12 7 уникально = 3724 3372 3192

Попробуйте онлайн.

14301201124204202034420112034224204431020210101232301021240204310431312122132100240400222324402030223103420431324402222132223233141443401210314023001122320404112224314302132421403301243334313000011124244441400003310332301330220022110121411122100040310110020040121444302100143202204330334033211334242120304123121024200421121232100303121022431044444423243331440434010014400~~10~~100~~1~43c~c~4~~41c~100~~1~43c~c~123~~100~~1~43c~c~44~~14~~43c~c100~~40c~c43c~~

объяснение

Стратегия, которую я использовал, состоит в том, чтобы обрабатывать каждый символ в строке как цифру от 123 и кодировать ее как десятичное число в программе. Затем программа преобразует это число обратно в базу 123 и отображает каждую цифру базы 123 обратно в символ. Поскольку трудно объяснить, почему программа находится в ее текущем состоянии, я объясню каждую ее версию.

Вот как выглядел конец программы в первой версии:

...2068438725 123b:c

Это реализует стратегию самым простым способом. Число, обычно кодируемое в базе 10, преобразуется обратно в базу 123, и каждая цифра базы 123 отображается обратно в символ. Но при этом используются 4 уникальных нецифровых символа, и возможность избавиться от любого из них, вероятно, будет стоить такого же размера из-за необходимости использовать менее простой код.

Во- первых, я понял , что я мог бы избавиться от bи от :операторов, создавая их во время выполнения , как их значения символов ASCII преобразуются обратно в символ (с уже настоящим cоператором) и оценивать их с ~оператором. Оказалось, что это немного сложно сделать с :оператором, так как он должен быть проанализирован вместе со следующим cоператором. Я решил это путем создания символов, :а cзатем создания и вычисления символа +, который объединяет первые два символа в строку, :cкоторую затем можно правильно оценить.

Во-вторых, я понял, что у ~оператора, который я только что представил, был новый удобный перегруженный вариант: когда ему присваивается число, он производит побитовое дополнение. Используя это два раза подряд после числа, я мог ввести разрыв токена в источнике без результирующего вычислительного эффекта, что позволило бы мне заменить пробелы, используемые для разделения чисел ~~.

Конечный результат - это еще 15 байт кода в конце, но эта стоимость значительно перевешивается за счет исключения двух уникальных символов из 14. Вот сравнение конца первой версии с концом второй версии:

...2068438725  123[ b  ][   :c    ]
...2068438725~~123~~98c~58c99c43c~~

Использовать меньше двух операторов, которые я использовал, было бы невозможно, но я все же хотел меньше уникальных символов. Поэтому следующим шагом было исключить цифры. Изменив кодировку числа таким образом, чтобы каждая десятичная цифра была действительно цифрой от 5 до 5, я мог бы потенциально исключить цифры 6-9. Прежде чем что-либо удалять из конца пргорама, это выглядело так:

...4010014400 10b5b123b:c

Как упомянуто ранее, устранение места легко. Но b, :и cне было бы так легко, так как их коды символов 98, 58и 99, соответственно. Все они содержали цифры, помеченные для исключения, поэтому мне пришлось искать способы вывести их все. И единственными полезными числовыми операторами со значениями символов, не содержащими 5-9, были декремент, приращение, умножение и сложение.

Для 98, я сначала использовал 100~~40c~40c~, который уменьшает 100вдвое. Но потом я понял, что мог бы использовать ~оператор еще раз, поскольку побитовое дополнение позволяет мне получать отрицательные числа, которые при добавлении позволяют имитировать вычитание. Так что я тогда использовал 100~~1~43c~, который добавляет 100и -2и на 2 байта меньше. Ибо 58я использовал 44~~14~~43c~, что добавляет 44и 14. И для 99, я использовал 100~~40c~, который уменьшает 100.

Конечный результат довольно большой и запутанный, но стоимость значительно большего числа и кода обработки была немного перевешена большим преимуществом исключения 5 уникальных символов из 12. Вот сравнение окончательного завершения программы до исключений и после вылеты:

...4010014400  10[      b      ][  5  ][     b     ]123[      b      ][            :c            ]
...4010014400~~10~~100~~1~43c~c~4~~41c~100~~1~43c~c~123~~100~~1~43c~c~44~~14~~43c~c100~~40c~c43c~~

Хорошо, теперь я впечатлен. Как сравнить цифры 6, 7 и т. Д. С базой 5?
— durron597

@ durron597 Они действительно не делают вычисления проще, так как коды символов операторов мне нужно , ( 98, 58и 99) по - прежнему вне диапазона. И увеличение базы только уменьшает общий размер программы на 8-10%, что недостаточно, чтобы компенсировать 10-15% баллов, полученных за счет нового уникального персонажа. Повторное включение bоператора также не стоит.
— Runer112

Возьмите число x и конвертируйте его в базу b. Его длина будет floor(log_b(x)+1), и он будет содержать bразные символы. Так что счет b*floor(log_b(x)+1). x заданное большое число, и если вы построите это для b, вы обнаружите, что минимум в значительной степени равен b = 3. Т.е. длина уменьшается немного, когда вы используете более высокие основания (log), но размер кодировки увеличивается линейно, так что это того не стоит. Сделал простую пробелную программу, но получил всего 4134 баллов.
— blutorange

@blutorange Вы должны запустить программу для пробелов. 4134 достаточно для второго места
— durron597

16

Пробелы, 1157 937 байт * 3 уникальных = 3471 2811

По популярному (?) Запросу я публикую свое решение для пробелов.

Чтобы уменьшить необходимый код, я жестко закодировал всю строку как одно двоичное число (7 бит на каждый байт). Простой цикл извлекает символы и печатает их.

Исходный код на filebin.ca.

ПРИМЕЧАНИЕ . Спецификации допускают произвольные большие целые числа , но интерпретатор языка Haskell на официальной странице ограничен 20 битами. Используйте, например, этот интерпретатор ruby ​​в github / hostilefork / whitespaces.

Скрипт ruby ​​для создания программы пробелов (l = WHITESPACE, t = TAB, u = NEWLINE, все, что после // игнорируется, записывает в файл prog.h):

str = 'Elizabeth obnoxiously quoted (just too rowdy for my peace): "THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG," giving me a look.'

def b2ws(bin)
    bin.chars.map{|x|x=='0' ? "l" : "t"}.join
end
def d2ws(dec,pad=0)
    b2ws(dec.to_s(2).rjust(pad,'0'))
end

bin = str.reverse.chars.map do |x|
    "  " + d2ws(x.getbyte(0),7) + " // char <#{x=="\n" ? "LF" : x}>"
end
data = "lll // pushes string as one large number\n#{bin.join("\n")}\nu"

File.open('prog.h','w') do |fout|
    fout << data << "\n"
    fout << <<-eos

// output string loop
ulllu // label 0

  // extract, print, and remove the last 7 bits of the data
  lul   // dup
  llltlllllllu // push 128
  tltt // mod
  tull  // print as char
  llltlllllllu // push 128
  tltl // div

  // break loop if EOS
  lul   // dup
  utltu // jump to 1 if top of stack is zero

ululu // jump to 0

ulltu // label 1
uuu
    eos
end

Для иллюстрации, программа для пробелов в удобочитаемой форме. Ниже приведен простой скрипт для преобразования его в настоящую пробелную программу.

lll // pushes string as one large number
  ltltttl // char <.>
  ttltltt // char <k>
  ttltttt // char <o>
  ttltttt // char <o>
  ttlttll // char <l>
  ltlllll // char < >
  ttllllt // char <a>
  ltlllll // char < >
  ttlltlt // char <e>
  ttlttlt // char <m>
  ltlllll // char < >
  ttllttt // char <g>
  ttltttl // char <n>
  ttltllt // char <i>
  tttlttl // char <v>
  ttltllt // char <i>
  ttllttt // char <g>
  ltlllll // char < >
  ltllltl // char <">
  ltlttll // char <,>
  tlllttt // char <G>
  tlltttt // char <O>
  tllltll // char <D>
  ltlllll // char < >
  tlttllt // char <Y>
  tlttltl // char <Z>
  tlllllt // char <A>
  tllttll // char <L>
  ltlllll // char < >
  tllltlt // char <E>
  tlltlll // char <H>
  tltltll // char <T>
  ltlllll // char < >
  tltlltl // char <R>
  tllltlt // char <E>
  tltlttl // char <V>
  tlltttt // char <O>
  ltlllll // char < >
  tltlltt // char <S>
  tltllll // char <P>
  tllttlt // char <M>
  tltltlt // char <U>
  tlltltl // char <J>
  ltlllll // char < >
  tlttlll // char <X>
  tlltttt // char <O>
  tlllttl // char <F>
  ltlllll // char < >
  tlltttl // char <N>
  tltlttt // char <W>
  tlltttt // char <O>
  tltlltl // char <R>
  tlllltl // char <B>
  ltlllll // char < >
  tlltltt // char <K>
  tlllltt // char <C>
  tlltllt // char <I>
  tltltlt // char <U>
  tltlllt // char <Q>
  ltlllll // char < >
  tllltlt // char <E>
  tlltlll // char <H>
  tltltll // char <T>
  ltllltl // char <">
  ltlllll // char < >
  ltttltl // char <:>
  ltltllt // char <)>
  ttlltlt // char <e>
  ttllltt // char <c>
  ttllllt // char <a>
  ttlltlt // char <e>
  tttllll // char <p>
  ltlllll // char < >
  ttttllt // char <y>
  ttlttlt // char <m>
  ltlllll // char < >
  tttlltl // char <r>
  ttltttt // char <o>
  ttllttl // char <f>
  ltlllll // char < >
  ttttllt // char <y>
  ttlltll // char <d>
  tttlttt // char <w>
  ttltttt // char <o>
  tttlltl // char <r>
  ltlllll // char < >
  ttltttt // char <o>
  ttltttt // char <o>
  tttltll // char <t>
  ltlllll // char < >
  tttltll // char <t>
  tttlltt // char <s>
  tttltlt // char <u>
  ttltltl // char <j>
  ltltlll // char <(>
  ltlllll // char < >
  ttlltll // char <d>
  ttlltlt // char <e>
  tttltll // char <t>
  ttltttt // char <o>
  tttltlt // char <u>
  tttlllt // char <q>
  ltlllll // char < >
  ttttllt // char <y>
  ttlttll // char <l>
  tttlltt // char <s>
  tttltlt // char <u>
  ttltttt // char <o>
  ttltllt // char <i>
  ttttlll // char <x>
  ttltttt // char <o>
  ttltttl // char <n>
  ttllltl // char <b>
  ttltttt // char <o>
  ltlllll // char < >
  ttltlll // char <h>
  tttltll // char <t>
  ttlltlt // char <e>
  ttllltl // char <b>
  ttllllt // char <a>
  ttttltl // char <z>
  ttltllt // char <i>
  ttlttll // char <l>
  tllltlt // char <E>
u

// output string loop
ulllu // label 0

  // extract, print, and remove the last 7 bits of the data
  lul   // dup
  llltlllllllu // push 128
  tltt // mod
  tull  // print as char
  llltlllllllu // push 128
  tltl // div

  // break loop if EOS
  lul   // dup
  utltu // jump to 1 if top of stack is zero

ululu // jump to 0

ulltu // label 1
uuu

По сути, строка для вывода представляет собой длинное целое число, и вам нужно уменьшить его счет.

Возьмите число x и конвертируйте его в базу b. Его длина будет floor(log_b(x)+1), и он будет содержать bразные символы. Так что счет b*floor(log_b(x)+1). xэто заданное большое число, и если вы построите это для b, вы обнаружите, что минимум почти равен b=3(и b=2почти так же хорош). Т.е. длина уменьшается немного, когда вы используете более высокие основания (log), но размер кодировки увеличивается линейно, так что это того не стоит.

Таким образом, я искал язык только с 0/1, но не нашел ни одного, а потом вспомнил, что есть пробелы, и попробовал его. В пробеле вы можете ввести двоичные числа с 0 и 1 напрямую.


Старый код, хуже оценка, но интереснее

Старый код в filebin .

Сценарий ruby, который я использовал для создания программы (l = WHITESPACE, t = TAB, u = NEWLINE, все после //игнорирования записывает в файл prog.h):

str = 'Elizabeth obnoxiously quoted (just too rowdy for my peace): "THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG," giving me a look.' + "\n"

def shift(x)
    (x-97)%128
end

EOS = "lttltl" #26
STACK = []

bin = str.reverse.chars.map do |x|
    byte = shift(x.getbyte(0))
    rf = STACK.index(byte)
    STACK.unshift(byte)

    y = byte.to_s(2).chars.map{|y|y=='0' ? 'l' : 't'}.join
    ph = "lll#{y}u" # pushing directly
    if rf
        bn = rf.to_s(2).chars.map{|y|y=='0' ? 'l' : 't'}.join
        cp = "ltll#{bn}u" # copying from stack
    end

    if STACK.size>0 && STACK[0]==STACK[1]
        "lul // dup #{x.inspect}"
    elsif cp && cp.size < ph.size
        "#{cp} // copy <#{x.inspect}> (from #{rf})"
    else
        "#{ph} // push <#{x.inspect}> (#{shift(x.getbyte(0))})"
    end
end

File.open('prog.h','w') do |fout|
    fout << "ll#{EOS}u // push EOS" << "\n"
    fout << bin.join("\n") << "\n"
    fout << <<-eos
// output string
ullu // label 0
  // add 97 (128) before printing
  lllttlllltu // push 97
  tlll // add
  llltlllllllu // push 128
  tltt // mod
  tull  // print top of stack

  // break loop if EOS
  lul   // dup
  ll#{EOS}u // push EOS
  tllt // subtract
  utltu // jump to 1 if top of stack is zero
uluu // jump to 0

ulltu // label 1
uuu
    eos
end

Для иллюстрации, программа для пробелов в удобочитаемой форме. Ниже приведен простой скрипт для преобразования его в настоящую пробелную программу.

lllttltlu // push EOS
llltltlltu // push <"\n"> (41)
llltllttltu // push <"."> (77)
llltltlu // push <"k"> (10)
llltttlu // push <"o"> (14)
lul // dup "o"
llltlttu // push <"l"> (11)
lllttttttu // push <" "> (63)
llllu // push <"a"> (0)
ltlltu // copy <" "> (from 1)
llltllu // push <"e"> (4)
lllttllu // push <"m"> (12)
ltlltlu // copy <" "> (from 2)
lllttlu // push <"g"> (6)
lllttltu // push <"n"> (13)
llltlllu // push <"i"> (8)
llltltltu // push <"v"> (21)
ltlltu // copy <"i"> (from 1)
lllttlu // push <"g"> (6)
ltllttlu // copy <" "> (from 6)
llltllllltu // push <"\""> (65)
llltlltlttu // push <","> (75)
lllttllttlu // push <"G"> (102)
lllttltttlu // push <"O"> (110)
lllttlllttu // push <"D"> (99)
ltlltltu // copy <" "> (from 5)
lllttttlllu // push <"Y"> (120)
lllttttlltu // push <"Z"> (121)
lllttlllllu // push <"A"> (96)
lllttltlttu // push <"L"> (107)
ltlltllu // copy <" "> (from 4)
lllttlltllu // push <"E"> (100)
lllttlltttu // push <"H"> (103)
llltttllttu // push <"T"> (115)
ltllttu // copy <" "> (from 3)
llltttllltu // push <"R"> (113)
ltlltllu // copy <"E"> (from 4)
llltttltltu // push <"V"> (117)
ltlltttlu // copy <"O"> (from 14)
ltlltllu // copy <" "> (from 4)
llltttlltlu // push <"S"> (114)
lllttlttttu // push <"P"> (111)
lllttlttllu // push <"M"> (108)
llltttltllu // push <"U"> (116)
lllttltlltu // push <"J"> (105)
ltlltltu // copy <" "> (from 5)
llltttltttu // push <"X"> (119)
ltlltlllu // copy <"O"> (from 8)
lllttlltltu // push <"F"> (101)
ltllttu // copy <" "> (from 3)
lllttlttltu // push <"N"> (109)
llltttlttlu // push <"W"> (118)
ltlltllu // copy <"O"> (from 4)
ltlltllltu // copy <"R"> (from 17)
lllttlllltu // push <"B"> (97)
ltlltltu // copy <" "> (from 5)
lllttltltlu // push <"K"> (106)
lllttllltlu // push <"C"> (98)
lllttltlllu // push <"I"> (104)
ltllttttu // copy <"U"> (from 15)
llltttllllu // push <"Q"> (112)
ltlltltu // copy <" "> (from 5)
ltllttlltu // copy <"E"> (from 25)
ltllttttlu // copy <"H"> (from 30)
ltllttttlu // copy <"T"> (from 30)
llltllllltu // push <"\""> (65)
ltlltllu // copy <" "> (from 4)
llltlttlltu // push <":"> (89)
llltlltlllu // push <")"> (72)
llltllu // push <"e"> (4)
llltlu // push <"c"> (2)
llllu // push <"a"> (0)
llltllu // push <"e"> (4)
lllttttu // push <"p"> (15)
ltlltttu // copy <" "> (from 7)
lllttlllu // push <"y"> (24)
lllttllu // push <"m"> (12)
ltlltlu // copy <" "> (from 2)
llltllltu // push <"r"> (17)
llltttlu // push <"o"> (14)
llltltu // push <"f"> (5)
ltllttu // copy <" "> (from 3)
ltllttlu // copy <"y"> (from 6)
lllttu // push <"d"> (3)
llltlttlu // push <"w"> (22)
llltttlu // push <"o"> (14)
ltlltttu // copy <"r"> (from 7)
ltlltltu // copy <" "> (from 5)
ltlltlu // copy <"o"> (from 2)
lul // dup "o"
llltllttu // push <"t"> (19)
ltllttu // copy <" "> (from 3)
ltlltu // copy <"t"> (from 1)
llltlltlu // push <"s"> (18)
llltltllu // push <"u"> (20)
llltlltu // push <"j"> (9)
llltllltttu // push <"("> (71)
ltlltltu // copy <" "> (from 5)
lllttu // push <"d"> (3)
llltllu // push <"e"> (4)
ltlltttu // copy <"t"> (from 7)
llltttlu // push <"o"> (14)
ltlltttu // copy <"u"> (from 7)
llltllllu // push <"q"> (16)
ltllttlu // copy <" "> (from 6)
lllttlllu // push <"y"> (24)
llltlttu // push <"l"> (11)
llltlltlu // push <"s"> (18)
ltlltltu // copy <"u"> (from 5)
llltttlu // push <"o"> (14)
llltlllu // push <"i"> (8)
llltltttu // push <"x"> (23)
ltlltlu // copy <"o"> (from 2)
lllttltu // push <"n"> (13)
llltu // push <"b"> (1)
ltlltlu // copy <"o"> (from 2)
ltlltlttu // copy <" "> (from 11)
llltttu // push <"h"> (7)
llltllttu // push <"t"> (19)
llltllu // push <"e"> (4)
llltu // push <"b"> (1)
llllu // push <"a"> (0)
lllttlltu // push <"z"> (25)
llltlllu // push <"i"> (8)
llltlttu // push <"l"> (11)
lllttlltllu // push <"E"> (100)
// output string
ullu // label 0
  // add 97 (128) before printing
  lllttlllltu // push 97
  tlll // add
  llltlllllllu // push 128
  tltt // mod
  tull  // print top of stack

  // break loop if EOS
  lul   // dup
  lllttltlu // push EOS
  tllt // subtract
  utltu // jump to 1 if top of stack is zero
uluu // jump to 0

ulltu // label 1
uuu

Сама эта программа для пробелов довольно проста, но есть три оптимизации игры в гольф:

  • использовать lulдля клонирования стека, когда есть повторяющийся символ
  • используйте ltlдля клонирования n-й записи стека, если она короче, чем прямое нажатие на символ
  • сдвинуть все байты на 97 (мод 128), уменьшить двоичные числа

Простой скрипт ruby ​​для преобразования моего читаемого человеком кода в реальную программу (чтение файла prog.hи запись в файл prog.ws):

WHITESPACE = "l"
NEWLINE = "u"
TAB = "t"

File.open('prog.ws','w') do |fout|
    code = ""
    fin = File.read('prog.h')
    fin.each_line do |line|
        line.gsub!(/\/\/.*/,'')
        line.scan(/#{NEWLINE}|#{WHITESPACE}|#{TAB}/i) do |x|

            code << case x.downcase
            when NEWLINE.downcase
                "\n"
            when WHITESPACE.downcase
                " "
            when TAB.downcase
                "\t"
            else
                ""
            end
        end
    end
    fout << code
end

Конечный символ новой строки является необязательным, вы можете сохранить несколько символов, не печатая его.
— durron597

Спасибо, изменил это. Первоначально я включил его, потому что интерпретатор Haskell добавляет некоторую отладочную информацию, но с ruby ​​он выглядит чисто.
— Blutorange

7

Ruby 144 байта * 39 уникальных = 5616

puts"Elizabeth obnoxiously quoted (just too rowdy for my peace): \"#{'the quick brown fox jumps over the lazy dog,'.upcase}\" giving me a look."

Иногда самое простое - лучшее.


Вы не используете никаких упрощений в данных. Примеры cjam и пробелов получили впечатляющие оценки вместе с некоторыми объяснениями. Даже с бонусом за использование аккуратного кода на вменяемом языке, это слишком много, чтобы придумывать! Может быть, вы можете повторно войти в длину + уникальный конкурс выигрыша.
— Jose_X

6

Brainfuck, 1264 байта * 7 уникальных = 8848

Да, это ужасная оценка.

++++[++++>---<]>++.-[--->+<]>.---.-[--->+<]>++.[->+++++<]>-.+.+++.[--->+<]>---.------------.--[--->+<]>--.+++++[->+++<]>.-------------.++++++++++++.+.+++++++++.[->+++<]>+.++++++.++++++.--.-------.-[--->+<]>.-[---->+<]>++.----[->++++<]>+.++++.------.+++++.+++[->+++<]>.-.-[--->+<]>-.++++++++.-----[->+++<]>+.+++++++++++.--.+.[---->+<]>+++.---[->++++<]>.-----..[--->+<]>-----.---[----->++<]>.---.++++++++.[->+++<]>-.+[--->+<]>++.-[---->+<]>++.++[->+++<]>.+++++++++.+++.[-->+++++<]>+++.+[----->+<]>.--[--->+<]>.-[---->+<]>++.[-->+++++++<]>.-----------.----.++.++.--[->+++<]>.-[-->+++<]>--.[-->+<]>+++.++.>-[--->+<]>-.------------.---.-[-->+<]>--.[-->+++++<]>+.++++.------------.------.++++++++.---[->++++<]>.+[->++<]>.>-[--->+<]>---.---.++++++++.---------.++[----->++<]>.+++[->++<]>.+++++++++.+++++++++.[--->++++<]>.+++++[->++<]>.>-[--->+<]>.--------.+++.+++.+[--->+<]>++++.[-->+++++<]>-.+++++++.--[----->+<]>+.+++++++++++++.--[----->++<]>.>-[--->+<]>-.------------.---.-[-->+<]>--.++++++[->++<]>.-----------.-----[-->+++<]>.-.+[--->+<]>++.++[->++<]>.+++++++++++.--------.--[--->++<]>--.----------.--.++[->+++<]>+.++.[->++++++<]>.[------>+<]>.+++++.-------.-[--->+<]>--.+[----->+<]>.--------.--[--->+<]>-.[->+++<]>+.-[->+++<]>.++[--->++<]>.+++..----.[->++++++++++<]>.

Я обнаружил, что можно использовать меньше уникальных символов, но длина будет 10795, умножить на 5 = 53975.
— mbomb007

Вы могли бы сделать это только с +.уверенностью, что это будет немного меньше, хотя.
— Captncraig

Используя только +и .я получаю 15018 * 2 = 30,036.
— Captncraig

6

> <> (Рыба) - 578 байт * 8 уникальных = 4624

14121412412431421124321110441421130402401433401430421141143114240333221142303303210321143224241321121343212340321131301320302344221132340304221130322340321313221100323234202311321143224241341121131213110444324310422421114441421142412420421114400443412442421112412413421113403423411403121100410413412423432421114431403423412401404412402434312421140413410434324324401431443243*3*3+3*1+00p44*4+3*2+01p44*3*4+1+11p44*3*4+1+21p43+3*2*31p43+3*2*41p43*3*41+1p44*3*4+1+42+1p43+3*2*43+1p43+3*2*1+44+1p43+3*2*1+33*1p43*3*3*3+33*1+1p43*3*3*33*2+1p43+3*3*43*1p44*2*1+43*1+1p44*3+3*2+43*2+1p

Моя оценка не так конкурентоспособна, как я надеялся, но я подумал, что это решение было достаточно интересным для публикации.

объяснение

Первый раздел кода представляет собой длинную строку из цифр 0-4, которые представляют 3-значное базовое 5 представление для каждого символа в строке. В оставшемся коде используется pоператор Fish, который позволяет редактировать исходный код программы во время ее работы. Используя этот оператор, я смог сгенерировать код Фиша, необходимый для преобразования базовых 5 символов обратно в базовые 10 и их вывода, а затем поместить этот код обратно в исходный код в начале файла до того, как интерпретатор достигнет конца линии и обернуты вокруг. Когда интерпретатор достигает конца строки, код был изменен так:

v4121412412431421124321110441421130402401433401430421141143114240333221142303303210321143224241321121343212340321131301320302344221132340304221130322340321313221100323234202311321143224241341121131213110444324310422421114441421142412420421114400443412442421112412413421113403423411403121100410413412423432421114431403423412401404412402434312421140413410434324324401431443243*3*3+3*1+00p44*4+3*2+01p44*3*4+1+11p44*3*4+1+21p43+3*2*31p43+3*2*41p43*3*41+1p44*3*4+1+42+1p43+3*2*43+1p43+3*2*1+44+1p43+3*2*1+33*1p43*3*3*3+33*1+1p43*3*3*33*2+1p43+3*3*43*1p44*2*1+43*1+1p44*3+3*2+43*2+1p
>55**$5*++ol?!; 

Когда код оборачивается и попадает в vоператор, он переходит ко второй строке, попадает в >оператор и переходит к циклу, каждый раз преобразуя кодирование base 5 обратно в значение ascii base 10, а затем выводит это значение. Когда в стеке больше нет значений, ?оператор переходит к ;и программа завершается.


5

7 , 273 байта × 7 уникальных байтов = 1911, неконкурентоспособен (языковые испытания после даты)

501513010250341012432044041204045104011053033043511402401130443235151151105240424404004144031133304214014044433043401032201433022042551243201043511102223044114403120042140450415114434050440500114042432010430032533041340424320250451514210501020420444010403043040402343447403

Попробуйте онлайн!

К сожалению, это старая проблема, а это значит, что я не смогу победить на одном из своих новейших языков. Тем не менее, язык был создан без знания задачи (я просто случайно наткнулся на него в «связанных вопросах»), но, тем не менее, оказалось, что он идеально подходит.

7 программ на PPCG обычно отправляются в упакованном формате, упаковывая восемь команд в три байта (язык имеет двенадцать команд, но в исходном файле может быть только восемь, то есть достаточно трех бит). Тем не менее, язык также поддерживает восьмеричный формат, в котором каждая команда записана в виде цифры ASCII, и это то, что я здесь использовал, это означает, что используются только семь различных байтов ( 6команда не требуется в программе, которая просто печатает простая строка).

Программа очень проста; он состоит из двух элементов стека: длинная строка, которая просто дословно печатается, a 7для разделения элементов (к сожалению, это неизбежно), и 403который является простым способом печати постоянной строки в 7 ( 40экранирует второй элемент стека, перемещая его в вершина стека, затем 3печатает его и удаляет старый первый элемент стека, то есть 403сам).

Итак, как я получил строку длиной 269 байт? 7 поддерживает несколько форматов ввода / вывода, и одним из его форматов является US-TTY , набор символов (в частности, вариант Baudot), который широко использовался до изобретения ASCII. (В 5начале второго элемента стека, т. Е. В начале программы, указывается кодировка строки; остальное - само содержимое строки.) Это пятибитный набор символов и команды 0для5может безопасно храниться в строках, будучи последовательно неэкранированным (так что выход из него один раз точно воспроизведет оригинал), поэтому язык использует пары команд (36 опций) для кодирования символов US-TTY (32 опции, причем 4 используется для директивы к самому 7-му переводчику). Конечно, есть более 32 уникальных символов, которые люди могут захотеть вывести (и более 32 символов появляются в строке), поэтому два символа являются «кодами сдвига», которые переключаются между четырьмя наборами символов (прописными буквами, строчными буквами , цифры и пользовательское «расширение цифр», которое 7 использует для оставшихся символов ASCII, которых нет в других наборах символов, однако все символы в строке «изначально» в US-TTY, поэтому подробности расширение не имело значения). Вот'

Ełlizabeth obnoxiously quoted Ø(Łłjust too rowdy for my peaceØ):
"ŁTHE QUICK BROWN FOX JUMPS OVER THE LAZY DOGØ," Łłgiving me a lookØ.

Я считаю десять смен, добавленных к 124 символам ввода, довольно незначительное соотношение. Таким образом, возможность использовать только чуть более двух байтов ввода на символ ввода, умноженный на 7 уникальных байтов, означает, что оценка по этой задаче невероятно хороша. (Я полагаю, что язык, который был разработан специально для этой задачи, использовал бы некое сжатие строк, а не ранее существовавший набор символов, но хотя Baudot и US-TTY не были предназначены для игры в гольф, они все еще довольно лаконичны .)


Эта лазейка заключается в том, чтобы не допустить написания языка с целью ответить на вызов, что явно не так. Все еще заслуживает одобрения от меня, хотя я не могу принять это несмотря на то, что у меня самый низкий балл на сегодняшний день.
— durron597

2

Python 2 163 147 145 143 байта * 35 36 35 уникально = 5705 5292 5220 5005

Это, вероятно, примерно так же хорошо, как я собираюсь получить это.

Редактирование:

  1. Удалено .capitalize()в пользу использования E.
  2. Изменено использование 'вместо обратной косой черты экранирующих кавычек.
  3. Удалены +и некоторые пробелы для использования запятых в printутверждении.
print"Elizabeth obnoxiously quoted (just too rowdy for my peace):",'"the quick brown fox jumps over the lazy dog,"'.upper(),"giving me a look."

Я попытался начать с двоичного или шестнадцатеричного и преобразовать в строку, но преимущества теряются в процессе преобразования.
— mbomb007

2

Python 2, 14508 11700 11088 10164 9486 9746 7860 145 байтов * 36 уникальных = 5220

Я увидел название и подумал, что это довольно интересный вызов для довольно многословного Python. Это мои заметки, когда я решил эту проблему.

Моя первая попытка уменьшила число уникальных игроков до 31:

print''.join(chr([69,108,105,122,97,98,101,116,104,32,111,98,110,111,120,105,111,117,115,108,121,32,113,117,111,116,101,100,32,40,106,117,115,116,32,116,111,111,32,114,111,119,100,121,32,102,111,114,32,109,121,32,112,101,97,99,101,41,58,32,34,84,72,69,32,81,85,73,67,75,32,66,82,79,87,78,32,70,79,88,32,74,85,77,80,83,32,79,86,69,82,32,84,72,69,32,76,65,90,89,32,68,79,71,44,34,32,103,105,118,105,110,103,32,109,101,32,97,32,108,111,111,107,46][r])for r in range(124))

Я думал, что мог сделать лучше. При использовании mapуникальности дошло до 26:

print''.join(map(chr,(69,108,105,122,97,98,101,116,104,32,111,98,110,111,120,105,111,117,115,108,121,32,113,117,111,116,101,100,32,40,106,117,115,116,32,116,111,111,32,114,111,119,100,121,32,102,111,114,32,109,121,32,112,101,97,99,101,41,58,32,34,84,72,69,32,81,85,73,67,75,32,66,82,79,87,78,32,70,79,88,32,74,85,77,80,83,32,79,86,69,82,32,84,72,69,32,76,65,90,89,32,68,79,71,44,34,32,103,105,118,105,110,103,32,109,101,32,97,32,108,111,111,107,46)))

Примерно в это же время я заметил в тексте вопроса, что оценка была uniques * bytesне просто уникальной! Это означало, что мои оценки за вышеупомянутые были 14508 и 11700. Не очень конкурентоспособны. Поэтому я теперь уменьшаю байты, сохраняя текст в виде шестнадцатеричной строки:

# 308*36 = 11088
print''.join(chr(int('456c697a6162657468206f626e6f78696f75736c792071756f74656420286a75737420746f6f20726f77647920666f72206d79207065616365293a202254484520515549434b2042524f574e20464f58204a554d5053204f56455220544845204c415a5920444f472c2220676976696e67206d652061206c6f6f6b2e'[i*2:i*2+2],16)) for i in range(124))

Размер был уменьшен, но больше уникальных персонажей. Но если бы я использовал упакованную двузначную десятичную строку со смещением 32:

# 308*33 = 10164
print''.join(chr(int('37767390656669847200796678798873798583768900818579846968000874858384008479790082798768890070798200778900806965676909260002524037004953413543003450475546003847560042534548510047543750005240370044335857003647391202007173867378710077690065007679797514'[i*2:i*2+2])+32) for i in range(124))

Это имеет такое же количество байтов, но сохраняет 3 уникальных.

Я вынашиваю новый план. Если я упаковываю длинное целое число Python с 7-битными символами, я могу извлечь каждое из них, сдвинув:

# 306*31 = 9486
h=1073974643401006528619595312441225198653732186368270382545648881135648217524502741093886285232362673460172159947573049818819511630304840724474679255867143965214892747087773876949021986013520804726327302180335979259392708372721217579101211940864406962137554744750
w=''
while h:w=chr(h&127)+w;h>>=7
print w

Ну, это уменьшило счет до 9486. Интересный эксперимент, но далеко не достаточно хороший. А что если я избавлюсь от имен функций и буду использовать форматирование строк?

# 443 * 22 = 9746
print('%c'*124)%(69,108,105,122,97,98,101,116,104,32,111,98,110,111,120,105,111,117,115,108,121,32,113,117,111,116,101,100,32,40,106,117,115,116,32,116,111,111,32,114,111,119,100,121,32,102,111,114,32,109,121,32,112,101,97,99,101,41,58,32,34,84,72,69,32,81,85,73,67,75,32,66,82,79,87,78,32,70,79,88,32,74,85,77,80,83,32,79,86,69,82,32,84,72,69,32,76,65,90,89,32,68,79,71,44,34,32,103,105,118,105,110,103,32,109,101,32,97,32,108,111,111,107,46)

У меня сейчас только 22 уникальности, но счет не улучшается.

Хорошо, что если я выбрал очевидный путь и просто напечатал строку:

# 131*60 = 7860
print'Elizabeth obnoxiously quoted (just too rowdy for my peace): "THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG," giving me a look.'

Оценка 7860. Я должен был сделать это первым. Но я бы так много не узнал.

Я думаю, я мог бы уменьшить уникальность на 26, если бы я динамически создавал заглавные буквы, так что:

# 145*36 = 5220
print'Elizabeth obnoxiously quoted (just too rowdy for my peace): '+'"the quick brown fox jumps over the lazy dog,"'.upper()+' giving me a look.'

Я думаю, что Python не станет намного лучше, чем 5220. Задача минимизации уникальных символов в Python, безусловно, была поучительной.

Обновление: mbomb007 имеет лучшее решение Python, набрав 5005. Хорошая работа.


Приятных оптимизаций в вашем решении +1. Я отредактировал название, как вы предложили.
— Логика Найт

1

> <> (Рыба) - 138 байт * 65 уникально = 8970

Простой маршрут, т.е. Hello World:

!v'Elizabeth obnoxiously quoted (just too rowdy for my peace): "THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG," giving me a look.'r!
 >l?!;o

Ну, для моего первого набега на> <> это было проблемой. Я думаю, что вижу некоторые улучшения, но было весело учиться :)

Или сделать его слишком сложным - 1567 байт * 27 уникальных = 42309

!\f8+3*:o2*f2*-:o3-:of+2+:ofa+-:o1+:o3+:of+:oc-:o\7+:od-:oc+:o1+:o9+: of-:o6+:o6+:o2-:o7-: od+:o\8-:o4+:o6-:o5+:of -:o1-:o\\6+:ob+ :o2-:o1+:o\:o5-:o:o\3+ :o3-:o8+:of4+-:oab ++:o\f4+-:o9+ :o3+: o\!
!5:of+a+:o1-:off+2+o:f-6-oa-:o8-:of3*1-:oa-:o2-:!fo3*7+:o2+:o:d+o:o5!f+:o7-:off+2+o6+:o8-!f:off!f+2+o4-:off+2+ob+!f:o3+::\ff    f f          f        f  f                  f    f        f     \!f-
 -                                               f                   f                    f     f                 f       ff    3 f          f        f  f                  f    f        f       f
 :                                               +                   +                    +     +                 +       ++    * +          +        +  +                  +    +        +       +
 o                                               2                   2                    2     2                 2       2a    1 2          2        2  2                  2    2        2       2
 c                                               +                   +                    +     +                 +       ++    + +          +        +  +                  +    +        +       +
 +                                               o                   o                    o     o                 o      \oo4-o \ o;         o        o  o                  o    o        o       o
 \:off+2+o9-:ob-:o4-:o2+:o2+:of4*%:of2++:o2,3+:o2 +:o3*f-3-:oc-:o3-:o\c+:o4+:oc-:o6-:o8+:o\9-:of 1++:o3-:o8+:o9-:o\8-:o9+:  o9+: o\e-:ob+:o8- :o3+:o3+ :o\4-:o7+:o2-f-:od+:o\2+:o c-:o3-:o\7+:ob\

Если вы напишите строку в обратном направлении, вы можете сбросить rстек в обратном порядке :) Также вы можете переместить финал oв пустое пространство в начале второй строки.
— Sp3000

@ Sp3000 Спасибо за советы!
— Влад274

В любом случае вы могли бы избежать f f + 2 + oстолько раз в сложной?
— mbomb007

В лучшем случае, есть ли простой способ в верхнем регистре ? Цикл по подпрограмме, которая добавляет 32 к каждому в этой части строки, сохраняя вам некоторые уникальные символы, может быть?
— mbomb007

@ mbomb007 Я мог бы оптимизировать это, используя регистр, или я мог даже прочитать пробел из самого исходного кода. Я супер новичок в Рыбе, поэтому я не знаю, возможно ли это
— Vlad274

1

05AB1E , 380 байт * 11 символов = 4180 баллов

Это потенциально не конкурирует

"234413410442342343401431404112421343420421440410421432430413441112423432421431401400112130411432430431112431421421112424421434400441112402421424112414441112422401342344401131213112114314242234112311320243232300112231312304322303112240304323112244320302310313112304321234312112314242234112301230330324112233304241134114112403410433410420403112414401112342112413421421412141"3ô5öçJ

Попробуйте онлайн!

Выдвигает основание 5 представления символов ASCII, объединенных вместе.
Разбивает на части по 3, преобразует обратно в десятичную.
Преобразует ASCII целое число обратно в символ.
Присоединяется обратно вместе.


0

Perl 6, 139 байт * 36 уникальных = 5004

say 'Elizabeth obnoxiously quoted (just too rowdy for my peace): "'~"the quick brown fox jumps over the lazy dog".uc~'," giving me a look.'

0

Java 8, 141 байт * 64 уникальных символа = 9,024

()->{return"Elizabeth obnoxiously quoted (just too rowdy for my peace): \"THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG,\" giving me a look.";}

141 байт, 64 уникальных символа. Подходы, отличные от простого «возврата строки», увеличивают количество байтов, не сильно экономя на используемых символах.



0

Tcl , 345 байтов, 345 x 13 = 4485

\160\165\164\163 [\163\165\142\163\164 [\162\145\147\163\165\142 \55\141\154\154 \50\\\144\\\144\51 "055451724142456450 5742565770515765635471 616557644544 \5052656364 645757 6257674471 465762 5571 6045414345\51\72 \"241005 2125110313 0222172716 061730 1225152023 17260522 241005 14013231 041707\"\54 475166515647 5545 41 54575753" \\\\1\\1]]\56

Попробуйте онлайн!


Tcl , 337 байт, 337 x 15 = 5055

\160\165\164\163 [\163\165\142\163\164 [\162\145\147\163\165\142 \55\141\154\154 (\\\144\\\144) "055451724142456450 5742565770515765635471 616557644544 (52656364 645757 6257674471 465762 5571 6045414345)\72 \"241005 2125110313 0222172716 061730 1225152023 17260522 241005 14013231 041707\"\54 475166515647 5545 41 54575753" \\\\1\\1]]\56

Попробуйте онлайн!

Tcl , 329 байт, 329 x 16 = 5264

\160\165\164\163 [\163\165\142\163\164 [\162\145\147\163\165\142 \55\141\154\154 (\\d\\d) "055451724142456450 5742565770515765635471 6165576445d (52656364 645757 625767d71 465762 5571 6045414345)\72 \"241005 2125110313 0222172716 061730 1225152023 17260522 241005 14013231 041707\"\54 475166515647 5545 41 54575753" \\\\1\\1]]\56

Попробуйте онлайн!


Tcl , 333 байта, 333 x 16 = 5328

\160\165\164\163 [\163\165\142\163\164 [\162\145\147\163\165\142 \55\141\154\154 (\\d\\d) "055451724142456450 5742565770515765635471 6165576445d \5052656364 645757 625767d71 465762 5571 6045414345\51\72 \"241005 2125110313 0222172716 061730 1225152023 17260522 241005 14013231 041707\"\54 475166515647 5545 41 54575753" \\\\1\\1]]\56

Попробуйте онлайн!


Tcl , 148 байтов, 148 x 37 = 5476

puts "Elizabeth obnoxiously quoted (just too rowdy for my peace): \"[string tou "the quick brown fox jumps over the lazy dog"],\" giving me a look."

Попробуйте онлайн!

Tcl , 277 байтов, 277 x 21 = 5817

\160u\164s [subs\164 [\162\145\147sub \55\141\154\154 (\\d\\d) "0554517241b456450 ob56o7051ous5471 61uo6445d(52us64 64oo 62o67d71 46o62 5571 6045414345): 241005 2125110313 0222172716 061730 1225152023 17260522 241005 14013231 041707\" 475166515647 5545 41 54oo53" \\\\1\\1]]\56

Попробуйте онлайн!

Tcl , 371 байт, 371 x 16 = 5936

puts "\105\154\151\172\141\142\145t\150 o\142\156o\170\151ous\154\171 \161uot\145\144 \50\152ust too \162o\167\144\171 \146o\162 \155\171 p\145\141\143\145\51\72 \"\124\110\105 \121\125\111\103\113 \102\122\117\127\116 \106\117\130 \112\125\115\120\123 \117\126\105\122 \124\110\105 \114\101\132\131 \104\117\107\54\" \147\151\166\151\156\147 \155\145 \141 \154oo\153\56"

Попробуйте онлайн!

Tcl , 401 байт, 401 x 16 = 6416

puts "\105\154\151\172\141\142\145\164\150 o\142\156o\170\151o\165\163\154\171 \161\165o\164\145\144 \50\152\165\163\164 \164oo \162o\167\144\171 \146o\162 \155\171 \160\145\141\143\145\51\72 \"\124\110\105 \121\125\111\103\113 \102\122\117\127\116 \106\117\130 \112\125\115\120\123 \117\126\105\122 \124\110\105 \114\101\132\131 \104\117\107\54\" \147\151\166\151\156\147 \155\145 \141 \154oo\153\56"

Попробуйте онлайн!


Tcl , 403 байта, 403 x 16 = 6448

puts "\105\154\151\172\141\142\145\164\150 o\142\156o\170\151o\165\163\154\171 \161\165o\164\145\144 \50\152\165\163\164 \164oo \162o\167\144\171 \146o\162 \155\171 \160\145\141\143\145\51\72 \42\124\110\105 \121\125\111\103\113 \102\122\117\127\116 \106\117\130 \112\125\115\120\123 \117\126\105\122 \124\110\105 \114\101\132\131 \104\117\107\54\42 \147\151\166\151\156\147 \155\145 \141 \154oo\153\56"

Попробуйте онлайн!


Tcl , 433 байта, 433 x 15 = 6495

puts "\105\154\151\172\141\142\145\164\150 \157\142\156\157\170\151\157\165\163\154\171 \161\165\157\164\145\144 \50\152\165\163\164 \164\157\157 \162\157\167\144\171 \146\157\162 \155\171 \160\145\141\143\145\51\72 \42\124\110\105 \121\125\111\103\113 \102\122\117\127\116 \106\117\130 \112\125\115\120\123 \117\126\105\122 \124\110\105 \114\101\132\131 \104\117\107\54\42 \147\151\166\151\156\147 \155\145 \141 \154\157\157\153\56"

Попробуйте онлайн!

Tcl , 473 байта, 473 x 14 = 6622

puts \105\154\151\172\141\142\145\164\150\40\157\142\156\157\170\151\157\165\163\154\171\40\161\165\157\164\145\144\40\50\152\165\163\164\40\164\157\157\40\162\157\167\144\171\40\146\157\162\40\155\171\40\160\145\141\143\145\51\72\40\42\124\110\105\40\121\125\111\103\113\40\102\122\117\127\116\40\106\117\130\40\112\125\115\120\123\40\117\126\105\122\40\124\110\105\40\114\101\132\131\40\104\117\107\54\42\40\147\151\166\151\156\147\40\155\145\40\141\40\154\157\157\153\56

Попробуйте онлайн!

Tcl , 133 байта, 133 x 60 = 7980

puts "Elizabeth obnoxiously quoted (just too rowdy for my peace): \"THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG,\" giving me a look."

Попробуйте онлайн!



Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.