En un mundo multidimensional steam-punk, nuestro jefe quiere colocar etiquetas de índice impresas en cada cajón del archivador multidimensional de nuestro conglomerado.
El jefe quiere componer la hoja de etiquetas completa como una sola forma, usando una fuente comprada solo para este propósito, por lo que tenemos que ordenar las clases (piezas de símbolos de metal). Dado que los tipos son muy caros, nuestro pedido debe ser para el recuento exacto de cada símbolo de dígito.
Para un conjunto dado (por cualquier medio) de longitudes de dimensiones ≥ 0, devuelva (por cualquier medio) nuestro orden, que es la tabla de frecuencia de dígitos requerida para componer todas las coordenadas cartesianas. Debe organizarse por orden de aparición del teclado (es decir, 0 después de 9), y no puede incluir órdenes de 0 tipos, por lo que si no se debe ordenar ningún tipo (porque una dimensión tiene una longitud 0); No imprima nada.
- El bono de -3 ordena si su código puede manejar (es decir, no imprimir nada) 0 dimensiones también.
- Los caracteres finales de nueva línea son aceptables.
- Se aplica la prohibición de lagunas estándar.
- Como se mencionó, los tipos son caros, por lo tanto, esto es codecolf .
Un alma amable puede editar este desafío para incluir una puntuación automática, así que incluye un encabezado como:# LanguageName, 123 sorts
Casos de prueba
Dado 11
, imprimir:
1 4
2 1
3 1
4 1
5 1
6 1
7 1
8 1
9 1
0 1
debido a que las etiquetas son necesarios 1
, 2
, 3
, 4
, 5
, 6
, 7
, 8
, 9
, 10
, y 11
.
Dado 2 3
, imprimir:
1 5
2 5
3 2
debido a que las etiquetas son necesarios 1 1
, 1 2
, 1 3
, 2 1
, 2 2
, y 2 3
.
Dado 2 0
, imprima una línea vacía:
o nada.
Dado 1 2 3
, imprimir:
1 11
2 5
3 2
debido a que las etiquetas son necesarios 1 1 1
, 1 1 2
, 1 1 3
, 1 2 1
, 1 2 2
, y1 2 3
Dado 5 5 5 5
, imprimir:
1 500
2 500
3 500
4 500
5 500
Y no, no voy a enumerar todas las 625 etiquetas.
Respuestas:
Dyalog APL,
107El código tiene 10 bytes de longitud y califica para la bonificación.
¡Gracias a user46915 por 3 bytes!
Tenga en cuenta que
⎕
(input) no funciona en TryAPL; Puedes probar el formulario de función aquí .No entiendo completamente el
⌸
operador, pero{⍺}⌸
enumera los valores únicos asumidos y{⍵}⌸
enumera sus lugares en el argumento.Tiene el orden correcto porque es el orden en que aparecen los dígitos en la matriz multidimensional de etiquetas.
fuente
⌸
operador clave.,∘≢⌸
sin ningún producto externo con un producto único y tal? Dyalog seguro es increíble. También,∘≢⌸
es más corto que{⍺,≢⍵}⌸
.Mathematica, 48 bytes - 3 = 45
fuente
Mathematica,
11185 bytesLa mayor parte del trabajo aquí es realizado por
DigitCount
.fuente
Grid[Thread@{Range@10~Mod~10,DigitCount@Tuples@Range@#~Total~2}~DeleteCases~{_,0}]&
R, 110 bytes
Guardado 4 gracias a Alex A. (¡gracias!)
fuente
x
una vez, por lo que solo debería poder reemplazar la aparición dex
conscan()
. ¿También por qué asignarz
?x
. Asigne la salida deMap
a unaz
variable, de lo contrarioMap
imprimiría su salida en stdout. Una mejor práctica sería para envolverMap
el interiorinvisible()
pero eso es un montón de personajes ...Ruby, 92 bytes
Toma las longitudes como argumentos de línea de comando:
fuente
CJam, 31 bytes
Pruébalo en línea
El código es de 34 bytes y requiere una bonificación de 3 bytes para trabajar con una lista de entrada vacía. La entrada es una lista en formato CJam, por ejemplo:
Explicación:
fuente
Pyth, 15 bytes
fuente
Haskell, 125 bytes
fuente