Elija cualquiera de los cinco caracteres que admite su idioma. Hay 5! = 5 × 4 × 3 × 2 × 1 = 120 formas en que se pueden organizar en una cadena de 5 caracteres que contiene cada carácter una vez; 120 permutaciones .
Elija sus caracteres de modo que, cuando cada una de las 120 cadenas se ejecute en su idioma, las 120 salidas producidas sean tantos enteros únicos del 1 al 120 (inclusive) como sea posible.
Es decir, para cada una de las 120 permutaciones de sus 5 caracteres que producen código ejecutable que genera un solo número, desea que el conjunto de todos esos números coincida lo más cerca posible del conjunto de enteros del 1 al 120.
Entonces, idealmente, su primera permutación saldría 1
, la siguiente 2
, la siguiente 3
, hasta el final 120
. Pero ese ideal es probablemente imposible para la mayoría de los idiomas y caracteres.
Las cadenas de 5 caracteres se pueden ejecutar como:
- un programa sin entrada
- una función sin argumentos
- un comando REPL
Se pueden ejecutar diferentes cadenas de diferentes maneras si se desea
Para que la salida cuente, debe ser una única salida entera de una manera normal , como:
- ser impreso en stdout
- devuelto por la función
- El resultado de la expresión REPL
El código debe terminar normalmente (lo que puede implicar un error siempre que el número se haya enviado primero). El código que no se ejecuta está bien, solo la salida (inexistente) no cuenta. La salida de los números debe estar en decimal a menos que una base diferente sea la norma para su idioma.
La presentación que genera los números más distintos del 1 al 120 gana. La presentación anterior gana en caso de empate.
Notas
- No es necesario que todos sus 5 caracteres sean diferentes, pero, por supuesto, tener caracteres duplicados reduce el número efectivo de permutaciones.
- Salidas flotantes, como
32.0
recuento y sin formato32
. (Pero32.01
no lo haría) - Ceros a la izquierda, como el
032
recuento y el simple32
. - Las salidas válidas deben ser deterministas e invariantes en el tiempo.
- Estamos tratando con caracteres , no con bytes.
Ejemplo
Los personajes 123+*
son una primera opción razonable para REPL de Python (o muchos idiomas). Las 120 permutaciones y salidas resultantes son:
123+* n/a
123*+ n/a
12+3* n/a
12+*3 n/a
12*3+ n/a
12*+3 36
132+* n/a
132*+ n/a
13+2* n/a
13+*2 n/a
13*2+ n/a
13*+2 26
1+23* n/a
1+2*3 7
1+32* n/a
1+3*2 7
1+*23 n/a
1+*32 n/a
1*23+ n/a
1*2+3 5
1*32+ n/a
1*3+2 5
1*+23 23
1*+32 32
213+* n/a
213*+ n/a
21+3* n/a
21+*3 n/a
21*3+ n/a
21*+3 63
231+* n/a
231*+ n/a
23+1* n/a
23+*1 n/a
23*1+ n/a
23*+1 23
2+13* n/a
2+1*3 5
2+31* n/a
2+3*1 5
2+*13 n/a
2+*31 n/a
2*13+ n/a
2*1+3 5
2*31+ n/a
2*3+1 7
2*+13 26
2*+31 62
312+* n/a
312*+ n/a
31+2* n/a
31+*2 n/a
31*2+ n/a
31*+2 62
321+* n/a
321*+ n/a
32+1* n/a
32+*1 n/a
32*1+ n/a
32*+1 32
3+12* n/a
3+1*2 5
3+21* n/a
3+2*1 5
3+*12 n/a
3+*21 n/a
3*12+ n/a
3*1+2 5
3*21+ n/a
3*2+1 7
3*+12 36
3*+21 63
+123* n/a
+12*3 36
+132* n/a
+13*2 26
+1*23 23
+1*32 32
+213* n/a
+21*3 63
+231* n/a
+23*1 23
+2*13 26
+2*31 62
+312* n/a
+31*2 62
+321* n/a
+32*1 32
+3*12 36
+3*21 63
+*123 n/a
+*132 n/a
+*213 n/a
+*231 n/a
+*312 n/a
+*321 n/a
*123+ n/a
*12+3 n/a
*132+ n/a
*13+2 n/a
*1+23 n/a
*1+32 n/a
*213+ n/a
*21+3 n/a
*231+ n/a
*23+1 n/a
*2+13 n/a
*2+31 n/a
*312+ n/a
*31+2 n/a
*321+ n/a
*32+1 n/a
*3+12 n/a
*3+21 n/a
*+123 n/a
*+132 n/a
*+213 n/a
*+231 n/a
*+312 n/a
*+321 n/a
Se generan 36 números, todos afortunadamente entre 1 y 120:
36, 26, 7, 7, 5, 5, 23, 32, 63, 23, 5, 5, 5, 7, 26, 62, 62, 32, 5, 5, 5, 7, 36, 63, 36, 26, 23, 32, 63, 23, 26, 62, 62, 32, 36, 63
Sin embargo, solo 8 de ellos son únicos:
36, 26, 7, 5, 23, 32, 63, 62
Por lo tanto, tal presentación solo obtendría 8 de un máximo de 120.
c
lenguajes similares!