Em um mundo multidimensional steam-punk, nosso chefe deseja afixar etiquetas de índice impressas em cada gaveta no arquivo de arquivos multidimensionais do nosso conglomerado.
O chefe deseja digitar toda a folha de etiquetas em um único formulário, usando uma fonte comprada apenas para esse fim, por isso temos que pedir os tipos (peças de símbolos de metal). Como as classificações são muito caras, nosso pedido deve corresponder à contagem exata de cada símbolo de dígito.
Para um determinado conjunto de comprimentos de dimensões ≥ 0, retorne (por qualquer meio) nossa ordem, que é a tabela de frequências de dígitos necessária para definir todas as coordenadas cartesianas. Ele deve ser organizado pela ordem de aparência do teclado (ou seja, 0 após 9) e não pode incluir pedidos de 0 classificações, portanto, se nenhuma classificação for solicitada (porque uma dimensão tem comprimento 0); imprima nada.
- O bônus de -3 é ordenado se o seu código também pode manipular (ou seja, imprimir nada) 0 dimensões.
- Caracteres finais de nova linha são aceitáveis.
- A proibição de brechas padrão se aplica.
- Como mencionado, os tipos são caros, portanto, este é um codecolf .
Uma alma gentil pode editar esse desafio para incluir pontuação automatizada, portanto inclua um cabeçalho como:# LanguageName, 123 sorts
Casos de teste
Dado 11
, imprima:
1 4
2 1
3 1
4 1
5 1
6 1
7 1
8 1
9 1
0 1
porque os rótulos necessários são 1
, 2
, 3
, 4
, 5
, 6
, 7
, 8
, 9
, 10
, e 11
.
Dado 2 3
, imprima:
1 5
2 5
3 2
porque os rótulos necessários são 1 1
, 1 2
, 1 3
, 2 1
, 2 2
, e 2 3
.
Dado 2 0
, imprima uma linha vazia:
ou nada.
Dado 1 2 3
, imprima:
1 11
2 5
3 2
porque os rótulos necessários são 1 1 1
, 1 1 2
, 1 1 3
, 1 2 1
, 1 2 2
, e1 2 3
Dado 5 5 5 5
, imprima:
1 500
2 500
3 500
4 500
5 500
E não, eu não vou listar todos os 625 rótulos.
Respostas:
Dyalog APL,
107O código tem 10 bytes e se qualifica para o bônus.
Obrigado user46915 por 3 bytes!
Observe que
⎕
(entrada) não funciona no TryAPL; você pode tentar o formulário da função aqui .Eu não entendo completamente o
⌸
operador, mas{⍺}⌸
lista os valores únicos assumidos e{⍵}⌸
lista seus lugares no argumento.Essa ordem está correta, porque é a ordem na qual os dígitos aparecem na matriz multidimensional de etiquetas.
fonte
⌸
operador Key.,∘≢⌸
sem produtos externos com produtos únicos e semelhantes ?! Dyalog com certeza é incrível. Também,∘≢⌸
é mais curto que{⍺,≢⍵}⌸
.Mathematica, 48 bytes - 3 = 45
fonte
Mathematica,
11185 bytesA maior parte do trabalho aqui é feita por
DigitCount
.fonte
Grid[Thread@{Range@10~Mod~10,DigitCount@Tuples@Range@#~Total~2}~DeleteCases~{_,0}]&
R, 110 bytes
Guardado 4 graças a Alex A. (obrigado!)
fonte
x
uma vez para poder substituir apenas uma ocorrênciax
porscan()
. Também por que atribuirz
?x
. Eu atribui a saída deMap
a umaz
variável, caso contrárioMap
, imprimiria sua saída em stdout. A melhor prática seria para embrulharMap
dentroinvisible()
, mas isso é um monte de personagens ...Ruby, 92 bytes
Toma os comprimentos como argumentos da linha de comando:
fonte
CJam, 31 bytes
Experimente online
O código tem 34 bytes e recebe um bônus de 3 bytes para trabalhar com a lista de entradas vazia. A entrada é uma lista no formato CJam, por exemplo:
Explicação:
fonte
Pitão, 15 bytes
fonte
Haskell, 125 bytes
fonte