Mantenga a los personajes únicos abajo

23

Es muy simple: su programa o función debe generar el siguiente texto:

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

Letra pequeña

Puede escribir un programa o función , que devuelve el resultado como una cadena o imprimiéndolo en STDOUT (o la alternativa más cercana). Opcionalmente, puede incluir una nueva línea final en la salida.

Tanteo

El número de bytes en su código multiplicado por el número de bytes únicos en su código

La puntuación más baja gana.

Por ejemplo, una respuesta mental o un espacio en blanco tendría una gran ventaja aquí, ya que el multiplicador sería muy bajo (8 y 3 respectivamente). Sin embargo, en general, escribir programas en esos idiomas produce un código mucho más largo que puede negar esa ventaja.

Las lagunas estándar que ya no son divertidas están prohibidas .

durron597
fuente
¿Asumo que la carcasa tiene que ser exacta?
EnragedTanker
@crayzeedude sí, ese es el punto
durron597
Bien. Solo aclarando. : p
EnragedTanker
1
@CarpetPython Hubo un debate sobre esto en el sandbox, y finalmente decidí que no había manera de NIVELAR REALMENTE el campo de juego. Tenga en cuenta que los espacios en blanco y el insomnio tienen las puntuaciones más altas de todos modos!
durron597
2
Como escribí en alguna parte, si suponemos que el uso de más bytes para compensar caracteres menos únicos se comporta de manera similar a la conversión de números en diferentes bases, entonces aproximadamente bytecount~Log(X,unique), con X alguna constante para este problema. Por lo tanto, único ^ bytecount ~ constante. Calcular este puntaje (log2) da python2_mbomb007 728, python2_carpetpython 744, ruby 756, Fish 825, Insomnia 1148, cjam 1277, whitespace 1484, brainfuck 3546. Entonces, a excepción de la respuesta brainfuck, es relativamente constante ...
blutorange

Respuestas:

7

Insomnio , 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=

Utiliza 4 caracteres dye=.

Solución 1b (no 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=

Solo usa 3 caracteres ey=.

Solución 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~

Sólo utiliza 3 caracteres: yo~. Se utiliza un programa para generar esto.

Actualmente, todos los programas solo usan las instrucciones 0, 1, 2, 6. En otras palabras, manipulan los bits en un solo byte e imprimen el resultado.

n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳
fuente
19

CJAM, 266 281 456 bytes * 14 12 7 único = 3724 3372 3192

Pruébalo en línea.

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

Explicación

La estrategia que he usado es tratar cada carácter de la cadena como un dígito de base 123 y codificarlo como un número decimal en el programa. Luego, el programa convierte ese número de nuevo a la base 123 y asigna cada dígito de base 123 a un carácter. Debido a que es difícil explicar por qué el programa está en su estado actual, explicaré cada versión del mismo.

Así es como se veía el final del programa en la primera versión:

...2068438725 123b:c

Esto implementa la estrategia de la manera más directa posible. El número, codificado normalmente en la base 10, se convierte de nuevo a la base 123 y cada dígito de la base 123 se asigna a un carácter. Pero esto usa 4 caracteres únicos que no son dígitos, y poder deshacerse de cualquiera de ellos probablemente valdría la pena el tamaño debido a tener que usar un código menos directo.

En primer lugar, me di cuenta que podía deshacerse de las by los :operadores mediante la creación de ellos en tiempo de ejecución como sus valores de caracteres ASCII convierten de nuevo a un personaje (con la ya presente coperador) y evaluarlas con el ~operador. Resultó ser un poco complicado hacer esto con el :operador, ya que debe analizarse junto con el siguiente coperador. Resolví esto produciendo los caracteres :y cluego produciendo y evaluando el carácter +, que concatena los dos caracteres anteriores en la cadena :cque luego se puede evaluar adecuadamente.

En segundo lugar, me di cuenta de que el ~operador que acabo de presentar tenía una nueva variante sobrecargada útil: cuando se le da un número, produce el complemento bit a bit. Al usar esto dos veces seguidas después de un número, podría introducir una ruptura de token en la fuente sin efecto computacional resultante, lo que me permite reemplazar los espacios utilizados para separar los números ~~.

El resultado final es 15 bytes más de código al final, pero este costo se ve ampliamente compensado por el beneficio de eliminar 2 caracteres únicos de 14. Aquí hay una comparación del final de la primera versión con el final de la segunda versión:

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

Usar menos de los 2 operadores que estaba usando sería imposible, pero aún quería menos personajes únicos. Entonces, el siguiente paso fue eliminar los dígitos. Al cambiar la codificación del número de modo que cada dígito decimal fuera realmente un dígito de base 5, podría eliminar los dígitos 6-9. Antes de eliminar algo del final del programa, se veía así:

...4010014400 10b5b123b:c

Como se mencionó anteriormente, eliminar el espacio es fácil. Pero el b, :y cno sería tan fácil, ya que sus códigos de caracteres son 98, 58y 99, respectivamente. Todos ellos contenían dígitos marcados para su eliminación, así que tuve que encontrar formas de derivarlos todos. Y los únicos operadores numéricos útiles con valores de caracteres que no contienen 5-9 fueron decrementar, incrementar, multiplicar y sumar.

Para 98, inicialmente usé 100~~40c~40c~, que disminuye 100dos veces. Pero luego me di cuenta de que podía hacer otro uso más del ~operador, ya que el complemento bit a bit me permite obtener números negativos que, cuando se agregan, me permiten emular la resta. Así que luego se usa 100~~1~43c~, lo cual se suma 100y -2y es de 2 bytes más pequeña. Para 58, usé 44~~14~~43c~, que agrega 44y 14. Y para 99, usé 100~~40c~, qué decrementos 100.

El resultado final es bastante grande y ofuscado, pero el costo del número significativamente mayor y el código de procesamiento fueron ligeramente superados por el gran beneficio de eliminar 5 caracteres únicos de 12. Aquí hay una comparación del final final del programa antes de las eliminaciones y después eliminaciones:

...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~~
Runer112
fuente
Ok, ahora estoy impresionado. ¿Cómo se comparan los dígitos de base 6, los dígitos de base 7, etc. con la base 5?
durron597
@ durron597 En realidad, no hacen los cálculos más fácil, ya que los códigos de caracteres de los operadores que necesito ( 98, 58y 99) todavía están fuera de rango. E incrementar la base solo disminuye el tamaño total del programa en un 8-10%, lo que no es suficiente para compensar el puntaje del 10-15% obtenido al tener un nuevo personaje único. Volver a incluir al boperador de manera similar no vale la pena.
Runer112
Tome un número x y conviértalo en base b. Su longitud será floor(log_b(x)+1)y contendrá bdiferentes símbolos. Entonces el puntaje es b*floor(log_b(x)+1). x es un número grande dado, y si trazas esto para b, encontrarás que el mínimo es más o menos b = 3. Es decir, la longitud se reduce ligeramente a medida que usa bases más altas (log), pero el tamaño del juego de caracteres aumenta linealmente, por lo que no vale la pena. Hizo un programa simple de espacios en blanco, pero solo obtiene un puntaje de 4134.
blutorange
@blutorange Deberías poner el programa de espacios en blanco. 4134 es suficiente para el segundo lugar
durron597
16

Los espacios en blanco, 1157 937 bytes * 3 = único 3471 2811

Por solicitud popular (?), Estoy publicando mi solución de espacios en blanco.

Para reducir el código necesario, codifiqué toda la cadena como un número binario (7 bits para cada byte). Un bucle simple extrae los caracteres y los imprime.

Código fuente en filebin.ca.

NOTA: Las especificaciones permiten números enteros grandes arbitrarios , pero el intérprete de Haskell en la página oficial está limitado a 20 bits. Utilice, por ejemplo, este intérprete de rubíes en github / hostilefork / whitespaces.

El script ruby ​​para crear el programa de espacios en blanco (l = WHITESPACE, t = TAB, u = NEWLINE, todo después de // ignorado, escribe en un archivo 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

Por ejemplo, el programa de espacios en blanco en forma legible por humanos. Vea a continuación un script simple para convertirlo en un programa de espacio en blanco 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

Básicamente, la cadena de salida es un entero largo, y debe reducir su puntaje.

Tome un número x y conviértalo en base b. Su longitud será floor(log_b(x)+1)y contendrá bdiferentes símbolos. Entonces el puntaje es b*floor(log_b(x)+1). xes un número grande dado, y si traza esto para b, encontrará que el mínimo es más o menos b=3(y b=2es casi tan bueno). Es decir, la longitud se reduce ligeramente a medida que usa bases más altas (log), pero el tamaño del juego de caracteres aumenta linealmente, por lo que no vale la pena.

Por lo tanto, busqué un idioma con solo 0/1, pero no encontré ninguno, y luego recordé que había espacios en blanco y lo probé. En el espacio en blanco, puede ingresar números binarios con 0 y 1 directamente.


Código antiguo, peor puntaje pero más interesante

Código antiguo en filebin .

El script ruby ​​que utilicé para crear el programa (l = WHITESPACE, t = TAB, u = NEWLINE, todo después de //ignorado, escribe en un archivo 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

Por ejemplo, el programa de espacios en blanco en forma legible por humanos. Vea a continuación un script simple para convertirlo en un programa de espacio en blanco 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

Este programa de espacios en blanco es bastante simple, pero hay tres optimizaciones de golf:

  • se usa lulpara clonar la pila cuando hay un personaje duplicado
  • use ltlpara clonar la entrada n-ésima de la pila si es más corta que presionar el personaje directamente
  • desplaza hacia abajo todos los bytes en 97 (mod 128), hace que los números binarios sean más pequeños

Un simple script de ruby ​​para convertir mi código de espacio en blanco legible por humanos en un programa de espacio en blanco real (lee un archivo prog.hy escribe en un archivo 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
blutorange
fuente
La nueva línea final es opcional, puede guardar algunos caracteres al no imprimirla.
durron597
Gracias, lo cambié. Originalmente, lo incluí porque el intérprete de Haskell agregó algunos resultados de depuración, pero con el ruby, se ve limpio.
blutorange
7

Rubí 144 Bytes * 39 Único = 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."

A veces lo más simple es lo mejor.

MegaTom
fuente
No utiliza ninguna simplificación en los datos. Los ejemplos de cjam y espacios en blanco obtuvieron puntajes impresionantes junto con algunas explicaciones. ¡Incluso con la ventaja de usar el código ordenado en un idioma sensato, es demasiado terreno para compensar! Tal vez puedas volver a participar en el concurso de puntuación de duración + único.
Jose_X
6

Brainfuck, 1264 bytes * 7 único = 8848

Sí, es un puntaje terrible.

++++[++++>---<]>++.-[--->+<]>.---.-[--->+<]>++.[->+++++<]>-.+.+++.[--->+<]>---.------------.--[--->+<]>--.+++++[->+++<]>.-------------.++++++++++++.+.+++++++++.[->+++<]>+.++++++.++++++.--.-------.-[--->+<]>.-[---->+<]>++.----[->++++<]>+.++++.------.+++++.+++[->+++<]>.-.-[--->+<]>-.++++++++.-----[->+++<]>+.+++++++++++.--.+.[---->+<]>+++.---[->++++<]>.-----..[--->+<]>-----.---[----->++<]>.---.++++++++.[->+++<]>-.+[--->+<]>++.-[---->+<]>++.++[->+++<]>.+++++++++.+++.[-->+++++<]>+++.+[----->+<]>.--[--->+<]>.-[---->+<]>++.[-->+++++++<]>.-----------.----.++.++.--[->+++<]>.-[-->+++<]>--.[-->+<]>+++.++.>-[--->+<]>-.------------.---.-[-->+<]>--.[-->+++++<]>+.++++.------------.------.++++++++.---[->++++<]>.+[->++<]>.>-[--->+<]>---.---.++++++++.---------.++[----->++<]>.+++[->++<]>.+++++++++.+++++++++.[--->++++<]>.+++++[->++<]>.>-[--->+<]>.--------.+++.+++.+[--->+<]>++++.[-->+++++<]>-.+++++++.--[----->+<]>+.+++++++++++++.--[----->++<]>.>-[--->+<]>-.------------.---.-[-->+<]>--.++++++[->++<]>.-----------.-----[-->+++<]>.-.+[--->+<]>++.++[->++<]>.+++++++++++.--------.--[--->++<]>--.----------.--.++[->+++<]>+.++.[->++++++<]>.[------>+<]>.+++++.-------.-[--->+<]>--.+[----->+<]>.--------.--[--->+<]>-.[->+++<]>+.-[->+++<]>.++[--->++<]>.+++..----.[->++++++++++<]>.
mbomb007
fuente
Descubrí que es posible usar menos caracteres únicos, pero la longitud sería 10795, multiplicada por 5 = 53975.
mbomb007
Sin embargo, podría hacerlo sin +.estar seguro de que sería más pequeño.
captncraig
Usando solo +y .obtengo 15018 * 2 = 30,036.
captncraig
6

> <> (Pez) - 578 bytes * 8 único = 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

Mi puntaje no es tan competitivo como esperaba, pero pensé que esta solución aún era lo suficientemente interesante como para publicar.

Explicación

La primera sección del código es una cadena larga de los dígitos 0-4 que representa una representación de base 5 de 3 dígitos para cada carácter en la cadena. El código restante aprovecha el poperador en Fish que le permite editar el código fuente del programa mientras el programa se está ejecutando. Al usar ese operador, pude generar el código Fish necesario para convertir los caracteres de base 5 de nuevo a base 10 y generarlos, y luego volver a colocar ese código en el código fuente al comienzo del archivo antes de que el intérprete llegara al final de la línea y envuelto. Cuando el intérprete llega al final de la línea, el código se ha modificado para que se vea así:

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

Cuando el código se envuelve y golpea al voperador, baja a la segunda línea, golpea al >operador y procede al bucle, convirtiendo cada vez la codificación de base 5 de nuevo en un valor ascii de base 10 y luego emitiendo ese valor. Cuando no haya más valores en la pila, el ?operador saltará al ;y el programa finalizará.

tallestpurpl
fuente
5

7 , 273 bytes × 7 bytes únicos = 1911, sin competencia (desafío de fechas posteriores al idioma)

501513010250341012432044041204045104011053033043511402401130443235151151105240424404004144031133304214014044433043401032201433022042551243201043511102223044114403120042140450415114434050440500114042432010430032533041340424320250451514210501020420444010403043040402343447403

Pruébalo en línea!

Desafortunadamente, este es un viejo desafío, lo que significa que no puedo ganar con uno de mis idiomas más nuevos. Sin embargo, el lenguaje fue creado sin conocimiento del desafío (simplemente me topé al azar en "preguntas relacionadas"), pero resultó ser un ajuste perfecto.

7 programas en PPCG normalmente se envían en formato empaquetado, empaquetando ocho comandos en tres bytes (el lenguaje tiene doce comandos, pero solo ocho pueden aparecer en un archivo fuente, lo que significa que tres bits son suficientes). Sin embargo, el lenguaje también admite un formato octal en el que cada comando se escribe como un dígito ASCII, y eso es lo que he usado aquí, lo que significa que solo se usan siete bytes distintos (el 6comando no es necesario en un programa que solo imprime Una cadena simple).

El programa es muy simple; Consiste en dos elementos de la pila, una cadena larga que se imprime textualmente, una 7para separar los elementos (desafortunadamente inevitable), y 403que es una forma simple de imprimir una cadena constante en 7 ( 40escapa al segundo elemento de la pila, mientras lo mueve a la parte superior de la pila, luego la 3imprime y descarta el primer elemento anterior de la pila, es decir, el 403propio).

Entonces, ¿cómo obtuve la cadena tan corta como 269 bytes? 7 admite múltiples formatos de E / S, y uno de sus formatos es US-TTY , un conjunto de caracteres (específicamente, una variante de Baudot) que fue ampliamente utilizado antes de que se inventara ASCII. (Al 5comienzo del segundo elemento de la pila, es decir, el inicio del programa, especifica la codificación de la cadena; el resto es el contenido de la cadena en sí). Es un conjunto de caracteres de cinco bits y los comandos 0para5se puede almacenar de forma segura en cadenas sin escapar constantemente (de modo que al escapar una vez reproducirá exactamente el original), por lo que el lenguaje usa pares de comandos (36 opciones) para codificar caracteres de US-TTY (32 opciones, con 4 utilizadas para directivas para el intérprete 7). Por supuesto, hay más de 32 caracteres únicos que las personas pueden querer mostrar (y aparecen más de 32 caracteres en la cadena), por lo que dos de los caracteres son "códigos de desplazamiento" que cambian entre cuatro conjuntos de caracteres (letras mayúsculas, letras minúsculas , figuras y una "extensión de figuras" definida por el usuario que 7 utiliza para los caracteres ASCII restantes que no están en los otros conjuntos de caracteres, sin embargo, todos los caracteres de la cadena son "nativos" en US-TTY, por lo que los detalles de la extensión no importaba). Aquí'

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

Cuento diez cambios agregados a 124 caracteres de entrada, una proporción bastante insignificante. Como tal, la capacidad de usar solo un poco más de dos bytes de entrada por carácter de entrada, multiplicado por 7 bytes únicos, significa que la puntuación en este desafío es increíblemente buena. (Supongo que un lenguaje diseñado específicamente para este desafío usaría algún tipo de compresión de cadena, en lugar de un conjunto de caracteres preexistente, pero a pesar de que Baudot y US-TTY no fueron diseñados para jugar al golf, todavía son bastante concisos .)


fuente
Esa escapatoria es para evitar escribir un idioma con el fin de responder a un desafío, lo que claramente no es así. Todavía merezco un voto positivo, aunque no puedo aceptarlo a pesar de tener el puntaje más bajo hasta la fecha.
durron597
2

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

Probablemente sea tan bueno como lo voy a conseguir.

Ediciones:

  1. Eliminado .capitalize()a favor de usarE .
  2. Cambiado para usar ' lugar de comillas de escape de comillas invertidas.
  3. Eliminado +y algunos espacios para usar comas en la printdeclaración.
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
fuente
Intenté buscar comenzar con binario o hexadecimal y convertir a la cadena, pero los beneficios se pierden en el proceso de conversión.
mbomb007
2

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

Vi el título y pensé que este era un desafío interesante para Python. Estas son mis notas mientras abordaba este problema.

Mi primer intento redujo los únicos a 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))

Pensé que podría hacerlo mejor. Mediante el usomap , los únicos se redujeron 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)))

Alrededor de este tiempo, noté en el texto de la pregunta que el puntaje era uniques * bytes , ¡no solo únicos! Eso significaba que mis puntajes para lo anterior eran 14508 y 11700. No muy competitivo. Así que ahora reduzco los bytes almacenando el texto como una cadena hexadecimal:

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

El tamaño se redujo pero más personajes únicos. Pero si usé una cadena decimal de 2 dígitos con un desplazamiento de 32:

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

Tiene el mismo número de bytes pero guarda 3 únicos.

Trama un nuevo plan. Si empaque un entero largo de Python con caracteres de 7 bits, podría extraer cada uno cambiando:

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

Bueno, eso redujo el puntaje a 9486. Un experimento interesante, pero no lo suficientemente bueno. Ahora, ¿qué pasa si me deshago de los nombres de las funciones y confío en el formato de cadena?

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

Ahora tengo solo 22 únicos, pero el puntaje no mejora.

Ok, ¿qué pasa si tomé el camino obvio y solo imprimí la cadena:

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

Puntuación de 7860. Debería haber hecho esto primero. Pero no habría aprendido tanto.

Supongo que podría reducir los únicos en 26 si produje dinámicamente las partes mayúsculas, así que:

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

Creo que Python no será mucho mejor que 5220. Sin embargo, la tarea de minimizar los caracteres únicos en Python fue instructiva.

Actualización: mbomb007 tiene una mejor solución de Python con un puntaje de 5005. Buen trabajo.

Caballero Lógico
fuente
Buenas optimizaciones en su solución +1. He editado el título como lo sugirió.
Logic Knight
1

> <> (Pez) - 138 Bytes * 65 Único = 8970

La ruta simple, es decir, 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

Bueno, para mi primera incursión en> <> esto fue un desafío. Creo que veo algunas mejoras, pero fue divertido aprenderlo :)

O para hacerlo demasiado complicado: 1567 bytes * 27 Único = 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\
Vlad274
fuente
Si escribe la cadena hacia atrás, puede soltar la rpila invirtiendo :) También puede mover la final oal espacio en blanco al comienzo de la segunda línea.
Sp3000
@ Sp3000 Gracias por los consejos!
Vlad274
¿De alguna manera podrías evitar tener f f + 2 + otantas veces en el complicado?
mbomb007
En el mejor, ¿hay una manera fácil de usar mayúsculas ? Recorre una subrutina que agrega 32 a cada uno en esa parte de la cadena, ahorrándote algunos caracteres únicos, ¿tal vez?
mbomb007
@ mbomb007 Podría optimizar eso usando el registro, o incluso podría leer un espacio del código fuente en sí. Soy súper nuevo en Fish, así que no sé si eso es posible
Vlad274
1

05AB1E , 380 bytes * 11 caracteres = puntaje 4180

Esto es potencialmente no competitivo

"234413410442342343401431404112421343420421440410421432430413441112423432421431401400112130411432430431112431421421112424421434400441112402421424112414441112422401342344401131213112114314242234112311320243232300112231312304322303112240304323112244320302310313112304321234312112314242234112301230330324112233304241134114112403410433410420403112414401112342112413421421412141"3ô5öçJ

Pruébalo en línea!

Empuja la representación de base 5 de caracteres ASCII unidos.
Se divide en piezas de 3, se convierte de nuevo a decimal.
Convierte entero ASCII de nuevo a carácter.
Se une nuevamente.

Urna de pulpo mágico
fuente
0

Perl 6, 139 bytes * 36 único = 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.'
bb94
fuente
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. Los enfoques distintos al simple "devolver la cadena" aumentan el recuento de bytes sin guardar mucho en los caracteres utilizados.


fuente
0

Perl 5 , 137 bytes * 35 único = 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.'

Pruébalo en línea!

Xcali
fuente
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

Pruébalo en línea!


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

Pruébalo en línea!

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

Pruébalo en línea!


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

Pruébalo en línea!


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

Pruébalo en línea!

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

Pruébalo en línea!

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"

Pruébalo en línea!

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"

Pruébalo en línea!


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"

Pruébalo en línea!


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"

Pruébalo en línea!

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

Pruébalo en línea!

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

Pruébalo en línea!

sergiol
fuente