Relacionados: Vamos design um dígito mosaico , Impressão / Output da L-Phabet . Sandbox postar aqui
Dadas 2 entradas C = columns and rows, S = starting point
produzem uma matriz da seguinte maneira:
Input 4, 3
1 2 3 0
2 2 3 0
3 3 3 0
0 0 0 0
Explicação
Dado C = 4, S = 3
1) Crie uma C x C
matriz preenchida com0
4 columns
4 _____|____
| |
r --0 0 0 0
o | 0 0 0 0
w | 0 0 0 0
s --0 0 0 0
2) Preencha com os S
valores na linha e na coluna S
, subtraia 1 de S
e repita até S = 0
. Este casoS = 3
Column 3
S = 3 |
v
0 0 3 0
0 0 3 0
Row 3-->3 3 3 0
0 0 0 0
Column 2
S = 2 |
v
0 2 3 0
Row 2-->2 2 3 0
3 3 3 0
0 0 0 0
Column 1
S=1 |
v
Row 1-->1 2 3 0
2 2 3 0
3 3 3 0
0 0 0 0
Final Result
1 2 3 0
2 2 3 0
3 3 3 0
0 0 0 0
Regras
- Presumir
C >= S >= 0
- A saída pode ser uma matriz, lista de listas, matriz (unidimensional ou bidimensional) etc.
- Você pode receber entradas através de qualquer formato de E / S padrão
- Seu programa, função, etc ... pode ser indexação 1 ou 0. Especifique qual é.
Nota A explicação é de 1 indexação
Critérios de vencimento code-golf
Oitava , 31 bytes
Função anônima que retorna uma matriz. Usa indexação baseada em 1.
Experimente online!
fonte
Haskell ,
4745 bytes-2 bytes, alterando o formato de saída para lista unidimensional.
Experimente online!
Explicação
O termo
x >>= (<$> x) . max
é uma versão em golfe deque avalia como
[1,2,3,4..c, 2,2,3,4..c, 3,3,3,4..c, ..., c,c,c,c..c]
. Agora, precisamos forçar os valores apenas0
quando eles excederem os
que alcançamossum [ j | j <= s]
.fonte
APL (Dyalog Classic), 12 bytes
Experimente online!
Qualquer dica sobre como transformar isso em um trem é bem-vinda.
fonte
APL (Dyalog) , 12 bytes
Experimente online!
fonte
o×⎕≥o←∘.⌈⍨⍳
seria permitido ou você teria que atribuí-lo a uma função para que isso conte?JavaScript (ES6), 61 bytes
Recebe entrada na sintaxe de curry
(c)(s)
, onde s é indexado em 1. Retorna uma matriz unidimensional.Experimente online!
fonte
Gelatina , 6 bytes
Um programa completo * que recebe números inteiros
C
eS
que imprime a representação do Jelly de uma lista de listas de números inteiros, conforme definido (1-indexado).Experimente online! (formata o resultado da díade como uma grade de números para facilitar a leitura)
Quão?
* A razão pela qual este é um programa completo é o uso do acesso ao argumento do programa
⁴
,. Como um link diádico, esse código dependeria de como o programa que o está usando é chamado.Link diádico reutilizável em 8 bytes (com S à esquerda e C à direita): Link diádico reutilizável em 8 bytes (com C à esquerda e S à direita):
RiⱮⱮ»þ`}
RiⱮⱮ⁹»þ¤
fonte
Java 10, 88 bytes
Experimente online.
Explicação:
fonte
PHP , 92 bytes
Isso é "indexação 1".
Para executá-lo:
Exemplo:
Ou Experimente online!
fonte
Stax , 10 bytes
Execute e depure
Como funciona:
fonte
Excel VBA, 65 bytes
Uma função de janela imediata que recebe as entradas
[A1:B1]
e saídas no intervalo[C1].Resize([A1],[A1])
.Entrada / Saída
A entrada está dentro do intervalo
[A1:B1]
fonte
J , 18 bytes
Muito mais tempo do que as duas soluções APL.
Experimente online!
fonte
MATLAB, 58 bytes (Graças a usuário anônimo)
Basta preencher os elementos da matriz com o número apropriado, executando um loop. Talvez seja possível ser mais inteligente com
arrayfun
fonte
zeros(c)
quais cofres em alguns bytes. Você também viu essa resposta do Oitava, acho que também funcionaria no Matlab?max()
preciso ter argumentos da mesma formafunction o=f(c,s);o=zeros(c);for j=s:-1:1;o(1:s,1:s)=j;end
.o(1:j,1:j)=j
C # (.NET Core) , 85 bytes
Experimente online!
Um porto da resposta de Kevin Cruijssen , que era muito melhor que o meu.
fonte
Python 2 , 58 bytes
Experimente online!
Produz uma lista 1D de comprimento
C*C
.fonte
Carvão , 19 bytes
Experimente online! Link é a versão detalhada do código. 3 bytes usados para converter a saída em decimal e formatá-la bem. Explicação:
fonte
Limpo , 67 bytes
Experimente online!
Define
$ :: Int Int -> [[Int]]
a resposta usando a indexação baseada em 1.fonte
Perl 6 , 37 bytes
Experimente online!
Retorna a matriz como matriz unidimensional.
fonte
Mathematica 44 bytes
fonte