El zorro más rápido del este

15

En el espíritu de Hello world! sin repetición

Escriba un programa que imprima la cadena "el zorro marrón rápido salta sobre el perro perezoso" con una nueva línea opcional. El programa completo no debe repetir ningún carácter.

Tenga en cuenta que la cadena se va a imprimir tiene caracteres de repetición, por lo que tendrá que moverse por esa limitación alguna manera.

Tenga en cuenta que la condición ganadora es , es decir, la respuesta más votada gana.

Actualización: para que esto sea un poco más fácil, se permite la repetición, pero debe intentar minimizarla. Los programas con menos (o ninguna) repetición tienen prioridad sobre los programas con cierta repetición.

Manishearth
fuente
Me temo que esto probablemente sea demasiado difícil, si no imposible. Hello world!sin repeticiones fue lo suficientemente difícil como para que las personas tuvieran que recurrir a lenguajes muy específicos o simplemente no podían resolver la tarea por completo, y además esto es considerablemente más difícil.
FireFly
3
Bueno, seguro que es imposible en C. No puedes llamar funciones o usar macros.
Oberon el
Recomiendo: imprimir la cadena dada con el menor número posible de caracteres repetidos .
primo
@FireFly no tardó mucho en tener respuestas :)
SirDarius el
3
@tmartin No, no lo es. La pregunta vinculada favorece la repetición mientras que la presente pregunta la penaliza.
gerrit

Respuestas:

32

Microsoft Word de 97 a 2003 (y algunas versiones de Mac Word) - 10 caracteres

Sin repeticiones, pero no coincide con las especificaciones - 10 caracteres:

=rand(2,1)

Salida:

The quick brown fox jumps over the lazy dog.
The quick brown fox jumps over the lazy dog.

Coincide con especificaciones, que no sean mayúsculas y puntuación, una repetición - 10 caracteres:

=rand(1,1)

Salida:

The quick brown fox jumps over the lazy dog.

Las versiones más nuevas de Microsoft Word utilizan =rand.old(1,1)duplicados dy 1.

Puede haber una forma de usar un campo {=SUM(3,-2)}como entrada para rand () pero mi instalación tiene problemas con los campos, es decir, no funcionan ...

"Bob" ha confirmado que {=SUM(3,-2)}(con cierta dificultad) puede usarse para reemplazar el primero 1, pero =se repite ...

=rand({=SUM(3,-2)},1)

Siempre que obtenga Word para actualizar SUMprimero, el resultado es:

The quick brown fox jumps over the lazy dog.

fuente
No estoy seguro de que la sintaxis dada sea correcta, pero no tengo ningún sistema tan antiguo para probarlo. Sin embargo, para versiones más nuevas, debería ser =rand.old(1,1). Supongo que está intentando usar 3-2 para reemplazar el primer 1, pero no parece estar funcionando para mí en 2010 con rand.old o rand.
Iszi
Tampoco tengo un sistema aquí, lo comprobaré cuando llegue a casa. Puede que necesite usar llaves { ... }como delimitadores, pero estoy bastante seguro de que las expresiones se pueden usar en cualquier función. Si no, lo revisaré!
2
Puedo confirmar los {=SUM(3,-2)}trabajos en Word 2007. Pero el método es un poco complicado. Primero, debe insertar un código de campo (Ctrl + F9). Luego, haga clic derecho => editar campo => fórmula => avanzado => escriba la fórmula. Porque escribirlo directamente no funciona por cualquier razón. Ahora haga clic en el campo y evalúe con Shift + F9. Y agregue el=rand.old()
Bob
¿Es necesario usar =SUM, o simplemente podría usar operadores aritméticos directamente, como 3-2?
supercat
@supercat: lo intentamos y, por alguna razón, Word no acepta expresiones como parámetros de =rand(), por ejemplo, =rand(3-2,1)sería perfecto. En realidad no lo intenté =rand({=3-2},1), pero debería funcionar de la misma manera, con duplicación de =.
17

Sclipting - 36 caracteres

덆둥긇굵늖꽫긆깲닷덮긂롦닲롸껂걪덖륰댲걯덦넬댢건늆넠닆굺뎒걤닶댬首坼

(espera entrada vacía)

Explicación:

Push the string "the quick brown ,fo,x, jumps ove,r the lazy dog,"
덆둥긇굵늖꽫긆깲닷덮긂롦닲롸껂걪덖륰댲걯덦넬댢건늆넠닆굺뎒걤닶댬
Retrieve last character from the string (",")
首
Regular expression string-split
坼

El resultado es la lista ["the quick brown ", "fo", "x", " jumps ove", "r the lazy dog", ""], que se concatena automáticamente en una sola cadena para la salida.

Timwi
fuente
1
Cuento 105 bytes, sin mencionar varias repeticiones. Char 235 , por ejemplo, se usa 20 veces.
primo
11
"No debe repetir ningún carácter ", no "no debe repetir ningún byte".
Plutor
3
No me sorprende Timwi, tu propio idioma es perfecto para los desafíos "sin caracteres repetidos".
Pierre Arlaud
13

Perl 6 (76 caracteres, sin dobles)

El script (será destruido por el software de la placa, pero hay En Space hasta Thin Space y NL y LF y tab)

say EVAL    lc q{<the Quiţk Brown fïX jUmpS ůvťɲ Tɨå ìšzY dOg>~&(127.CHR
x
43)}
  • Utiliza EVAL (gracias de nuevo por ponerlo en mayúsculas) y <foo bar>cita palabras que admiten todos los caracteres espaciales especiales como separadores de palabras.
  • say se une a la lista de cadenas con espacio, funciona muy bien aquí :)
  • A continuación, uso ~&y 127 para mezclar poco a poco a ASCII. Complicación extra: 'Ŭ'.lcse 'ŭ'convierte en una que se convierte en una en slugar de lo rque necesitaba. Agregar 128 algunas veces más ayuda :)

Una versión con barra invertida se escapa en lugar de caracteres unicode para mostrar que todos son diferentes

say\x[3000]EVAL\x[9]lc q{<the\x[2003]Qui\x[163]k\x[2004]Brown\x[2005]f\x[EF]X\x[2006]jUmpS\x[2007]\x[16F]v\x[165]\x[272]\x[2008]T\x[268]\x[E5]\x[2009]\x[EC]\x[161]zY\x[200A]dOg>~&(127.CHR\x[0A]x\x[0D]43)}

Si desea verificar que todos sean únicos, use este script (solía Qb"string"tener citas básicas con solo escapes de barra invertida)

.say for 
Qb"say\x[3000]EVAL\x[9]lc q{<the\x[2003]Qui\x[163]k\x[2004]Brown\x[2005]f\x[EF]X\x[2006]jUmpS\x[2007]\x[16F]v\x[165]\x[272]\x[2008]T\x[268]\x[E5]\x[2009]\x[EC]\x[161]zY\x[200A]dOg>~&(127.CHR\x[0A]x\x[0D]43)}"
.comb.Bag.grep(*.value > 1).map: {.key.ord.base(16) ~ " $_"  }

O ejecutarlo directamente usando

EVAL Qb"say\x[3000]EVAL\x[9]lc q{<the\x[2003]Qui\x[163]k\x[2004]Brown\x[2005]f\x[EF]X\x[2006]jUmpS\x[2007]\x[16F]v\x[165]\x[272]\x[2008]T\x[268]\x[E5]\x[2009]\x[EC]\x[161]zY\x[200A]dOg>~&(127.CHR\x[0A]x\x[0D]43)}"
Ayiko
fuente
10

PHP - 67 bytes

<?echo$g^¶¥€¼½ˆ•.${~˜}=ÂÍåœÌýü¡¦Åþ¾’‹Ï†£‘ƲáºëÓâæݗߙ󖎸·³ø‰ï®ÜØÔ;

Copiar y pegar, guardar como Latin-1 (Ansi).

Este es un cifrado xor de 7 bytes, que usa la cadena ¶¥€¼½ˆ•para la sal.

Uno de los personajes repetida: $.

primo
fuente
Puedes acortar otros 3 caracteres usando <?=ya que ya estás usando etiquetas cortas
Kristoffer Sall-Storgaard
Ah, lo siento, acabo de notar que ya usas =
Kristoffer Sall-Storgaard
@ KristofferSHansen Creo que debería ser posible utilizarlo eval('Return$g=binary;')de alguna forma críptica (tal vez inversión de bits) para evitar la $repetición, y luego también se =liberaría.
primo
La etiqueta de apertura no debe incluirse en el recuento de bytes.
TecBrat
@TecBrat El final ;puede ser reemplazado por la etiqueta de cierre: ¿eso tampoco debería contarse? En resumen, no estoy de acuerdo. Si su código no se ejecuta tal cual, no es un programa completo.
primo
0

Haskell, 71 personajes

map(\c->chr$mod(ord c)128)"tŨeఠquiţkĠbŲɯwnȠfѯxРjѵŭŰsܠůvťѲठѴѨѥਠlšzyଠɤկg"

Otra solución de módulo de 7 bits.

Personajes repetidos:

c 3
d 2
m 2
o 2
r 2
( 2
) 2
" 2

Golf por primera vez con Haskell; cualquiera que tenga más experiencia en el idioma, siéntase libre de mejorar. Quería hacer que la función anónima no tuviera puntos para evitar tener que mencionar una variable dos veces, pero no sé si sería un beneficio neto.

Fraxtil
fuente
0

JS, 35

btoa("¶ªº'$nº0ú1驲ޮØ^¬òv")

(sí ... la cita doble se repite. Y el resultado es malo. Todavía no es una respuesta seria).

xem
fuente
-2

Script por lotes: 7 bytes

echo %1

Si el script se llama hello.bat, escriba esto en la línea de comando:

hello.bat "The quick brown fox jumps over the lazy dog"
Frederick
fuente
Esto es, esto es tan ... insensible a mayúsculas y minúsculas! (Quiero decir, no imprime exactamente lo que pide la pregunta).
Sr. Lister
66
Al escribir eso en la línea de comando, estás repitiendo caracteres.
gerrit