Considere a matriz infinita:
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
0 0 2 3 0 0 2 3 0 0 2 3 0 0 2 3
0 0 0 4 5 6 0 0 0 4 5 6 0 0 0 4 ...
0 0 0 0 7 8 9 10 0 0 0 0 7 8 9 10
0 0 0 0 0 11 12 13 14 15 0 0 0 0 0 11
...
Cada nova linha da matriz é construída começando com z
zeros, onde z
é o comprimento dos dígitos positivos que estamos usando nessa linha. Os dígitos positivos são construídos iniciando 1
e incrementando e adicionando um dígito adicional cada vez que você itera as linhas. Esse padrão é repetido infinitamente para a direita. Assim, por exemplo, a primeira linha começa 0, 1, 0, 1...
enquanto a segunda linha é iniciada 0,0, 2,3, 0,0, 2,3...
. Seguindo o padrão, a terceira linha é iniciada 0,0,0, 4,5,6, 0,0,0, 4,5,6...
.
Dado dois números inteiros como entrada n
e x
, imprima os primeiros (mais x
altos ) números da n
coluna th da matriz acima. (Você pode escolher a indexação 0 ou 1 para as colunas, apenas especifique qual é o seu envio.)
Por exemplo, para entrada n = 0
(indexada 0), a coluna é inteiramente 0
s, portanto a saída seria apenas x
0
s.
Para entrada n = 15
e x = 6
, a saída seria [1, 3, 4, 10, 11, 0]
.
Para entrada n = 29
e x = 15
, a saída seria [1, 0, 6, 8, 15, 0, 0, 34, 39, 0, 0, 0, 0, 0, 120]
.
Para entrada n = 99
e x = 25
, a saída seria [1, 3, 4, 0, 15, 0, 0, 0, 37, 55, 56, 0, 87, 93, 0, 0, 151, 163, 176, 0, 0, 0, 0, 0, 325]
.
E / S e regras
- A entrada e saída podem ser fornecidas por qualquer método conveniente .
- Pode-se presumir que a entrada e a saída cabem no tipo de número nativo do seu idioma.
- Um programa completo ou uma função são aceitáveis. Se uma função, você pode retornar a saída em vez de imprimi-la.
- As brechas padrão são proibidas.
- Isso é código-golfe, portanto todas as regras usuais de golfe se aplicam e o código mais curto (em bytes) vence.
n=1
desde que o resultado do sapply não é mais uma matriz. essa correção é cara Gostaria de saber se existe uma de golfista?rep
com umn
dentro dosapply
, o que economizava um byte, mas lembrei que osfor
loops são mais curtos do quesapply
já que eu não precisaria definir uma função.Python 2 , 69 bytes
Experimente online!
fonte
APL (Dyalog Classic) ,
272423 bytes-1 graças a @FrownyFrog
Experimente online!
fonte
MATL ,
2518 bytesExperimente online!
Obrigado a Luis Mendo por jogar fora 6 bytes!
Esta é essencialmente uma porta MATL da minha resposta R.
fonte
K (ngn / k) ,
3331 bytesExperimente online!
fonte
Casca , 14 bytes
O argumento
n
(primeiro) é 1 indexado, tente online!Como alternativa, poderíamos usar
↑!TṠzo¢+†K0CNN
o mesmo número de bytes.Explicação
fonte
Husk ,
2119 bytesRecebe argumentos como
n
(indexado em 1), entãox
.Economizou 2 bytes graças ao BMO, mas ainda não é tão curto quanto a resposta do BMO.
Minha primeira tentativa de usar o Husk.
Experimente online!
fonte
Haskell , 75 bytes
Experimente online!
fonte
Python 2 , 55 bytes
Experimente online!
Desenvolvido de forma independente; mas noto que isso acaba sendo uma porta da resposta Javascript de Arnauld .
fonte
Perl 5
-n
, 52 bytesExperimente online!
fonte
Gelatina , 11 bytes
Experimente online!
-1 graças a Jonathan Allan .
Argumento 1: x
Argumento 2: n + 1
fonte
0ṁ;Ɗ
->¬;$
salva um byte.’R
... (isto é, pelo menos para mim) O estranho é que durante os últimos dias estive pensando na sequência Thue-Morse (que, em Jelly, contém;¬$
).05AB1E , 25 bytes
Experimente online!
05AB1E acompanha matrizes como pasta de dente e suco de laranja, mas não uma contagem de bytes ruim, considerando o quão ruim é minha implementação. Até o meu código está rindo de mim "
LO©L
".fonte
Carvão , 19 bytes
Experimente online! Link é a versão detalhada do código. Explicação:
O trecho de código
EιL⊞Oυω
gera os próximosi
números inteiros pelo expediente de enviar um valor fictício para uma matriz a cada passagem pelo loop e obter o comprimento da matriz resultante.fonte
Java 8,
656360 bytesn
é indexado em 0,x
é indexado em 1, gera os números delimitados e revertidos por nova linha.Porto da resposta JavaScript (ES6) de @ Arnauld .
Experimente online.
Um resultado bem impresso na ordem correta tem
86 bytes a mais: Experimente online.fonte
Haskell, 67 bytes
Experimente online!
fonte