Mantenha os caracteres únicos baixos


23

É muito simples: seu programa ou função deve gerar o seguinte texto:

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

Impressão fina

Você pode escrever um programa ou função que retorne a saída como uma string ou imprima-a em STDOUT (ou alternativa mais próxima). Opcionalmente, você pode incluir uma única nova linha à direita na saída.

Pontuação

O número de bytes no seu código multiplicado pelo número de bytes únicos no seu código

Menor pontuação ganha.

Por exemplo, uma resposta cerebral ou um espaço em branco teria uma grande vantagem aqui, pois o multiplicador seria muito baixo (8 e 3, respectivamente). No entanto, geralmente, escrever programas nessas línguas produz código muito mais longo, o que pode negar essa vantagem.

Falhas padrão que não são mais engraçadas são proibidas .


Estou assumindo que o invólucro deve ser exato?
precisa saber é o seguinte

@crayzeedude sim, isso é meio que o ponto #
durron597

Bem. Apenas esclarecendo. : p
EnragedTanker

1
@CarpetPython Houve algum debate sobre isso na caixa de areia e, finalmente, decidi que não havia como NÍVEL VERDADEIRO o campo de jogo. Observe que espaço em branco e insônia têm as pontuações mais altas de qualquer maneira!
durron597

2
Como escrevi em algum lugar, se assumirmos que o uso de mais bytes para compensar caracteres menos exclusivos se comporta de maneira semelhante à conversão de números em bases diferentes, então aproximadamente bytecount~Log(X,unique), com X constante para esse problema. Portanto, único byountount constante. A computação dessa pontuação (log2) fornece python2_mbomb007 728, python2_carpetpython 744, ruby 756, Fish 825, Insomnia 1148, cjam 1277, whitespace 1484, brainfuck 3546. Portanto, exceto para a resposta brainfuck, é relativamente constante ...
blutorange

Respostas:


7

Insônia , 575 bytes * 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=

Usa 4 caracteres dye=.

Solução 1b (não publicada): 783 bytes * 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=

Usa apenas 3 caracteres ey=.

Solução 1: 826 bytes * 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~

Utiliza apenas 3 caracteres: yo~. Um programa é usado para gerar isso.

Atualmente, todos os programas usam apenas as instruções 0, 1, 2, 6. Em outras palavras, eles manipulam os bits em um único byte e imprimem o resultado.


19

CJam, 266 281 456 bytes * 14 12 7 original = 3724 3372 3192

Experimente online.

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

Explicação

A estratégia que usei é tratar cada caractere da string como um dígito base 123 e codificá-lo como um número decimal no programa. O programa então converte esse número de volta à base 123 e mapeia cada dígito da base 123 de volta em um caractere. Como é difícil explicar por que o programa está em seu estado atual, explicarei cada versão dele.

Aqui está a aparência do final do programa na primeira versão:

...2068438725 123b:c

Isso implementa a estratégia da maneira mais direta possível. O número, codificado normalmente na base 10, é convertido novamente na base 123 e cada dígito da base 123 é mapeado de volta para um caractere. Mas isso usa quatro caracteres únicos que não são dígitos, e poder se livrar de qualquer um deles provavelmente valeria o tamanho atingido devido à necessidade de usar um código menos direto.

Primeiro, eu percebi que eu poderia se livrar dos be os :operadores, criando-los em tempo de execução como os seus valores de caracteres ASCII convertido novamente em um personagem (com o já presente coperador) e avaliá-los com o ~operador. Foi um pouco complicado fazer isso com o :operador, pois ele deve ser analisado junto com o coperador a seguir . Resolvi isso produzindo os caracteres :e, em cseguida, produzindo e avaliando o caractere +, que concatena os dois caracteres anteriores na sequência :cque pode ser avaliada adequadamente.

Segundo, percebi que o ~operador que acabei de apresentar apresentava uma nova variante sobrecarregada útil: quando recebe um número, produz o complemento bit a bit. Ao usar isso duas vezes seguidas após um número, eu poderia introduzir uma quebra de token na fonte sem efeito computacional resultante, permitindo substituir os espaços usados ​​para separar os números ~~.

O resultado final é mais 15 bytes de código no final, mas esse custo é superado pelo benefício de eliminar 2 caracteres únicos de 14. Aqui está uma comparação do final da primeira versão com o final da segunda versão:

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

Usar menos do que os dois operadores que eu estava usando seria impossível, mas eu ainda queria menos caracteres únicos. Portanto, o próximo passo foi eliminar os dígitos. Alterando a codificação do número para que cada dígito decimal fosse realmente um dígito de base 5, eu poderia potencialmente eliminar os dígitos 6-9. Antes de eliminar qualquer coisa do final do programa, era assim:

...4010014400 10b5b123b:c

Como mencionado anteriormente, é fácil eliminar o espaço. Mas o b, :e cnão seria tão fácil, como seus códigos de caracteres são 98, 58e 99, respectivamente. Todos estes continham dígitos marcados para eliminação, então eu tive que encontrar maneiras de derivar todos eles. E os únicos operadores numéricos úteis com valores de caracteres que não contêm 5-9 foram decremento, incremento, multiplicação e adição.

Para 98, eu usei inicialmente 100~~40c~40c~, que diminui 100duas vezes. Mas então percebi que poderia fazer outro uso do ~operador, pois o complemento bit a bit me permite obter números negativos que, quando adicionados, permitem imitar a subtração. Então, eu então utilizado 100~~1~43c~, que adiciona 100e -2e é 2 bytes menor. Para 58, eu usei 44~~14~~43c~, que adiciona 44e 14. E para 99, eu usei 100~~40c~, o que diminui 100.

O resultado final é bastante grande e ofuscado, mas o custo do número e código de processamento significativamente maiores foi superado pelo grande benefício de eliminar 5 caracteres únicos de 12. Aqui está uma comparação do final do programa antes das eliminações e depois eliminações:

...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~~

Ok, agora estou impressionado. Como os dígitos da base 6, da base 7, etc. se comparam à base 5?
precisa saber é o seguinte

@ durron597 Eles realmente não fazer os cálculos mais fácil, como os códigos de caracteres dos operadores que eu preciso ( 98, 58e 99) ainda está fora de alcance. E incrementar a base apenas diminui o tamanho total do programa em 8 a 10%, o que não é suficiente para compensar a pontuação de 10 a 15% obtida com um novo personagem exclusivo. Re-incluindo o boperador da mesma forma não vale a pena.
precisa saber é o seguinte

Pegue um número x e converta-o na base b. Seu comprimento será floor(log_b(x)+1)e conterá bsímbolos diferentes. Então a pontuação é b*floor(log_b(x)+1). x é um número grande e, se você plotar isso para b, verá que o mínimo é praticamente b = 3. Ou seja, o comprimento diminui um pouco quando você usa bases mais altas (log), mas o tamanho do conjunto de caracteres aumenta linearmente, por isso não vale a pena. Feito um programa de espaço em branco simples, mas torna-se apenas uma pontuação de 4134.
blutorange

@blutorange Você deve colocar o programa de espaço em branco. 4134 é o suficiente para o segundo lugar
durron597

16

Espaço em branco, 1157 937 bytes * 3 exclusivo = 3471 2811

Por solicitação popular (?), Estou postando minha solução de espaço em branco.

Para reduzir o código necessário, codifiquei a string inteira como um número binário (7 bits para cada byte). Um loop simples extrai os caracteres e os imprime.

Código fonte em filebin.ca.

NOTA: As especificações permitem números inteiros grandes arbitrários , mas o intérprete Haskell na página oficial é limitado a 20 bits. Use, por exemplo, este interpretador de ruby ​​no github / hostilefork / whitespaces.

O script ruby ​​para criar o programa de espaço em branco (l = WHITESPACE, t = TAB, u = NEWLINE, tudo depois de // ignorado, grava em um arquivo 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

Para ilustração, o programa de espaço em branco na forma legível por humanos. Veja abaixo um script simples para convertê-lo em um programa de espaço em branco real.

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

Basicamente, a sequência a ser impressa é um número inteiro longo e você precisa reduzir sua pontuação.

Pegue um número x e converta-o na base b. Seu comprimento será floor(log_b(x)+1)e conterá bsímbolos diferentes. Então a pontuação é b*floor(log_b(x)+1). xé um número grande e, se você plotar isso para b, verá que o mínimo é praticamente b=3(e b=2é quase tão bom). Ou seja, o comprimento diminui um pouco quando você usa bases mais altas (log), mas o tamanho do conjunto de caracteres aumenta linearmente, por isso não vale a pena.

Assim, procurei uma linguagem com apenas 0/1, mas não encontrei nenhuma, e então lembrei que havia espaço em branco e tentei. Em espaço em branco, você pode inserir números binários com zeros e zeros diretamente.


Código antigo, pior pontuação, mas mais interessante

Código antigo no filebin .

O script ruby ​​que eu usei para criar o programa (l = WHITESPACE, t = TAB, u = NEWLINE, tudo depois de //ignorado, grava em um arquivo 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

Para ilustração, o programa de espaço em branco na forma legível por humanos. Veja abaixo um script simples para convertê-lo em um programa de espaço em branco real.

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

Esse programa de espaço em branco é bastante simples, mas existem três otimizações de golfe:

  • use lulpara clonar a pilha quando houver um caractere duplicado
  • use ltlpara clonar a n-ésima entrada da pilha, se for menor do que empurrar o caractere diretamente
  • desloque todos os bytes em 97 (mod 128), reduz os números binários

Um script ruby ​​simples para converter meu código de espaço em branco legível para humano em um programa de espaço em branco real (leia um arquivo prog.he grave em um arquivo 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

A nova linha à direita é opcional, você pode salvar alguns caracteres ao não imprimi-la.
precisa saber é o seguinte

Obrigado, mudou. Originalmente, eu o incluí porque o interpretador Haskell adicionou alguma saída de depuração, mas com o ruby, ele parece limpo.
precisa saber é

7

Ruby 144 bytes * 39 exclusivo = 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."

Às vezes, o mais simples é o melhor.


Você não usa nenhuma simplificação nos dados. Os exemplos cjam e espaço em branco obtiveram pontuações impressionantes, juntamente com algumas explicações. Mesmo com o bônus de usar código organizado em uma linguagem sã, é muito difícil fazer as pazes !!! Talvez você possa entrar novamente no concurso de pontuação + duração única.
Jose_X

6

Brainfuck, 1264 bytes * 7 exclusivo = 8848

Sim, é uma pontuação terrível.

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

Descobri que é possível usar menos personagens únicos, mas o comprimento seria 10795, vezes 5 = 53975.
mbomb007

você poderia fazê-lo apenas com a +.certeza de que seria menor.
Captncraig 5/03/15

Usando apenas +e .recebo 15018 * 2 = 30,036.
captncraig

6

> <> (Peixe) - 578 bytes * 8 exclusivo = 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

Minha pontuação não é tão competitiva quanto eu esperava, mas achei que essa solução ainda era interessante o suficiente para ser postada.

Explicação

A primeira seção do código é uma sequência longa dos dígitos 0-4 que representam uma representação 5 de base de 3 dígitos para cada caractere na sequência. O código restante aproveita o poperador do Fish, que permite editar o código-fonte do programa enquanto o programa está sendo executado. Usando esse operador, eu pude gerar o código Fish necessário para converter os caracteres da base 5 de volta à base 10 e produzi-los e, em seguida, inseri-lo no código-fonte no início do arquivo antes que o intérprete chegasse ao final da linha e enrolado. Quando o intérprete chega ao final da linha, o código foi modificado para ter a seguinte aparência:

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?!; 

Quando o código envolve e atinge o voperador, ele desce para a segunda linha, atinge o >operador e prossegue em loop, sempre convertendo a codificação da base 5 em um valor ascii da base 10 e, em seguida, emitindo esse valor. Quando não houver mais valores na pilha, o ?operador pulará para ;e o programa será encerrado.


5

7 , 273 bytes × 7 bytes únicos = 1911, não-concorrentes (desafio de pós-datas no idioma)

501513010250341012432044041204045104011053033043511402401130443235151151105240424404004144031133304214014044433043401032201433022042551243201043511102223044114403120042140450415114434050440500114042432010430032533041340424320250451514210501020420444010403043040402343447403

Experimente online!

Infelizmente, esse é um desafio antigo, o que significa que não consigo vencer com um dos meus idiomas mais recentes. No entanto, o idioma foi criado sem o conhecimento do desafio (eu apenas o encontrei aleatoriamente em "questões relacionadas"), mas mesmo assim acabou sendo um ajuste perfeito.

Normalmente, sete programas no PPCG são enviados em formato compactado, agrupando oito comandos em três bytes (o idioma possui doze comandos, mas apenas oito podem aparecer em um arquivo de origem, o que significa que três bits são suficientes). No entanto, o idioma também suporta um formato octal no qual cada comando é escrito como um dígito ASCII, e é isso que eu usei aqui, significando que apenas sete bytes distintos são usados ​​(o 6comando não é necessário em um programa que apenas imprime uma string simples).

O programa é muito simples; consiste em dois elementos da pilha, uma sequência longa que é impressa literalmente, a 7para separar os elementos (infelizmente inevitáveis) e 403que é uma maneira simples de imprimir uma sequência constante em 7 ( 40escapa do segundo elemento da pilha, enquanto o move para o topo da pilha, depois a 3imprime e descarta o primeiro elemento antigo da pilha, ou seja, o 403próprio).

Então, como eu consegui a string tão curta quanto 269 bytes? 7 suporta vários formatos de E / S, e um de seus formatos é US-TTY , um conjunto de caracteres (especificamente, uma variante do Baudot) que foi amplamente utilizado antes da invenção do ASCII. (O 5início do segundo elemento da pilha, ou seja, o início do programa, especifica a codificação da string; o restante é o próprio conteúdo da string.) É um conjunto de caracteres de cinco bits e os comandos 0para5pode ser armazenado com segurança em seqüências de caracteres enquanto não tiver escapado de forma consistente (para que escapar uma vez reproduza exatamente o original), para que o idioma use pares de comandos (36 opções) para codificar caracteres de US-TTY (32 opções, com 4 sendo usadas para diretrizes para o próprio 7 intérpretes). Obviamente, existem mais de 32 caracteres únicos que as pessoas podem querer exibir (e mais de 32 caracteres aparecem na string); portanto, dois deles são "códigos de mudança" que alternam entre quatro conjuntos de caracteres (letras maiúsculas e minúsculas) , figuras e uma "extensão de figuras" definida pelo usuário, que 7 usa para os caracteres ASCII restantes que não estão nos outros conjuntos de caracteres; no entanto, todos os caracteres da string estão "nativamente" em US-TTY, para que os detalhes de a extensão não importava). Aqui'

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

Conto dez turnos adicionados a 124 caracteres de entrada, uma proporção bastante insignificante. Como tal, a capacidade de usar apenas pouco mais de dois bytes de entrada por caractere de entrada, multiplicado por 7 bytes únicos, significa que a pontuação nesse desafio é incrivelmente boa. (Eu acho que uma linguagem que foi projetada especificamente para esse desafio usaria algum tipo de compactação de strings, em vez de um conjunto de caracteres preexistente, mas mesmo que Baudot e US-TTY não tenham sido projetados para jogar golfe, eles ainda são bastante concisos .)


Essa brecha é impedir a escrita de um idioma com o objetivo de responder a um desafio, o que claramente não é. Ainda digno de um voto positivo de mim, embora não possa aceitá-lo, apesar de ter a pontuação mais baixa até o momento.
durron597

2

Python 2, 163 147 145 143 bytes * 35 36 35 exclusivo = 5705 5292 5220 5005

Provavelmente é tão bom quanto eu vou conseguir.

Edições:

  1. Removido .capitalize()em favor do uso E.
  2. Alterado para usar em 'vez de aspas de barra invertida.
  3. Removido +e alguns espaços para usar vírgulas na printinstrução
print"Elizabeth obnoxiously quoted (just too rowdy for my peace):",'"the quick brown fox jumps over the lazy dog,"'.upper(),"giving me a look."

Tentei começar com binário ou hexadecimal e converter para a string, mas os benefícios são perdidos no processo de conversão.
mbomb007

2

Python 2, 14508 11700 11088 10164 9486 9746 7860 145 bytes * 36 exclusivo = 5220

Eu vi o título e achei que esse era um desafio interessante para o Python bastante prolixo. Estas são minhas anotações ao lidar com esse problema.

Minha primeira tentativa reduziu os únicos para 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))

Eu pensei que poderia fazer melhor. Ao usar map, os únicos chegaram a 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)))

Por volta dessa época, notei no texto da pergunta que a pontuação era uniques * bytes, não apenas única! Isso significava que minhas pontuações para os itens acima foram 14508 e 11700. Não muito competitivo. Então agora reduzo os bytes armazenando o texto como uma sequência hexadecimal:

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

O tamanho foi reduzido, mas mais caracteres únicos. Mas se eu usasse uma string decimal de 2 dígitos compactada com um deslocamento de 32:

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

Isso tem o mesmo número de bytes, mas salva 3 únicos.

Eu traço um novo plano. Se eu compilar um número inteiro longo do Python com caracteres de 7 bits, poderia extrair cada um deles deslocando:

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

Bem, isso reduziu a pontuação para 9486. Um experimento interessante, mas nem de longe bom o suficiente. Agora, e se eu me livrar dos nomes das funções e confiar na formatação de strings?

# 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)

Agora tenho apenas 22 únicos, mas a pontuação não melhora.

Ok, e se eu seguisse o caminho óbvio e apenas imprimisse a string:

# 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.'

Pontuação de 7860. Eu deveria ter feito isso primeiro. Mas eu não teria aprendido muito.

Eu acho que poderia reduzir os únicos em 26 se produzisse dinamicamente as partes maiúsculas, então:

# 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.'

Eu acho que o Python não ficará muito melhor que o 5220. A tarefa de minimizar os caracteres únicos no Python com certeza foi instrutiva.

Atualização: mbomb007 tem uma solução Python melhor com pontuação de 5005. Bom trabalho.


Ótimas otimizações em sua solução +1. Eu editei o título como você sugeriu.
Logic Knight

1

> <> (Peixe) - 138 bytes * 65 Exclusivo = 8970

A rota simples, ou seja, Olá Mundo:

!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

Bem, na minha primeira incursão em> <> isso foi um desafio. Acho que vejo algumas melhorias, mas foi divertido aprendê-lo :)

Ou, para torná-lo excessivamente complicado - 1567 bytes * 27 Exclusivo = 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\

Se você escrever a string para trás, poderá soltar a rpilha para trás :) Além disso, você pode mover a final opara o espaço em branco no início da segunda linha.
Sp3000

@ Sp3000 Obrigado pelas dicas!
precisa saber é o seguinte

De alguma maneira você poderia evitar ter f f + 2 + otantas vezes na complicada?
mbomb007

Na melhor, existe uma maneira fácil de usar letras maiúsculas ? Faça um loop através de uma sub-rotina que adiciona 32 a cada parte da string, economizando alguns caracteres exclusivos, talvez?
mbomb007

@ mbomb007 Eu poderia otimizar isso usando o registrador ou até mesmo ler um espaço do próprio código-fonte. Estou super novo para peixe, então eu não sei se isso é possível
Vlad274

1

05AB1E , 380 bytes * 11 caracteres = pontuação 4180

Isso é potencialmente não competitivo

"234413410442342343401431404112421343420421440410421432430413441112423432421431401400112130411432430431112431421421112424421434400441112402421424112414441112422401342344401131213112114314242234112311320243232300112231312304322303112240304323112244320302310313112304321234312112314242234112301230330324112233304241134114112403410433410420403112414401112342112413421421412141"3ô5öçJ

Experimente online!

Empurra a representação da base 5 de caracteres ASCII unidos.
Divide-se em pedaços de 3 e converte novamente em decimal.
Converte o número inteiro ASCII novamente em caractere.
Junta-se novamente.


0

Perl 6, 139 bytes * 36 exclusivo = 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 bytes * 64 caracteres únicos = 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 bytes, 64 caracteres únicos. Abordagens diferentes da simples "return the string" aumentam a contagem de bytes sem economizar muito nos caracteres usados.


0

Perl 5 , 137 bytes * 35 exclusivo = 4795

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

Experimente online!


0

Tcl , 345 bytes, 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

Experimente online!


Tcl , 337 bytes, 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

Experimente online!

Tcl , 329 bytes, 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

Experimente online!


Tcl , 333 bytes, 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

Experimente online!


Tcl , 148 bytes, 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."

Experimente online!

Tcl , 277 bytes, 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

Experimente online!

Tcl , 371 bytes, 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"

Experimente online!

Tcl , 401 bytes, 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"

Experimente online!


Tcl , 403 bytes, 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"

Experimente online!


Tcl , 433 bytes, 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"

Experimente online!

Tcl , 473 bytes, 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

Experimente online!

Tcl , 133 bytes, 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."

Experimente online!



Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.