Relacionado: Diseñemos un mosaico de dígitos , Imprima / Imprima el L-phabet . Sandbox publica aquí
Dadas 2 entradas C = columns and rows, S = starting point
salen una matriz de la siguiente manera:
Input 4, 3
1 2 3 0
2 2 3 0
3 3 3 0
0 0 0 0
Explicación
Dado C = 4, S = 3
1) Crear una C x C
matriz llena de0
4 columns
4 _____|____
| |
r --0 0 0 0
o | 0 0 0 0
w | 0 0 0 0
s --0 0 0 0
2) Rellene con S
valores dentro de la fila y columna S
, luego reste 1 S
y repita hasta 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
Reglas
- Asumir
C >= S >= 0
- La salida puede ser una matriz, una lista de listas, una matriz (unidimensional o bidimensional), etc.
- Puede tomar entradas a través de cualquier formato de E / S predeterminado
- Su programa, función, etc ... puede ser indexación 1 o indexación 0. Por favor especifique cuál es.
Nota La explicación es indexación 1
Criterio ganador código-golf
Octava , 31 bytes
Función anónima que devuelve una matriz. Utiliza indexación basada en 1.
Pruébalo en línea!
fuente
Haskell ,
4745 bytes-2 bytes cambiando el formato de salida a una lista unidimensional.
Pruébalo en línea!
Explicación
El término
x >>= (<$> x) . max
es una versión de golf deque será evaluado
[1,2,3,4..c, 2,2,3,4..c, 3,3,3,4..c, ..., c,c,c,c..c]
. Ahora solo necesitamos forzar los valores0
una vez que exceden los valoress
que alcanzamossum [ j | j <= s]
.fuente
APL (Dyalog Classic), 12 bytes
Pruébalo en línea!
Cualquier consejo para convertir esto en un tren es bienvenido.
fuente
APL (Dyalog) , 12 bytes
Pruébalo en línea!
fuente
o×⎕≥o←∘.⌈⍨⍳
Se permitiría algo , o tendría que asignarlo a una función para que eso cuente?JavaScript (ES6), 61 bytes
Toma entrada en la sintaxis de curry
(c)(s)
, donde s está indexado en 1. Devuelve una matriz unidimensional.Pruébalo en línea!
fuente
Jalea , 6 bytes
Un programa completo * que toma enteros
C
yS
que imprime la representación Jelly de una lista de listas de enteros como se define (1 indexado).Pruébalo en línea! (Formatea el resultado de la díada como una cuadrícula de números para facilitar la lectura)
¿Cómo?
* La razón de que esto es un programa completo se debe al uso de la conexión argumento programa,
⁴
. Como enlace diádico, este código dependería de cómo se llame al programa que lo está utilizando.Enlace diádico reutilizable en 8 bytes (tomando S a la izquierda y C a la derecha): Enlace diádico reutilizable en 8 bytes (tomando C a la izquierda y S a la derecha):
RiⱮⱮ»þ`}
RiⱮⱮ⁹»þ¤
fuente
Java 10, 88 bytes
Pruébalo en línea.
Explicación:
fuente
PHP , 92 bytes
Esto es "1 indexación".
Para ejecutarlo:
Ejemplo:
O Pruébelo en línea!
fuente
Stax , 10 bytes
Ejecutar y depurarlo
Cómo funciona:
fuente
Excel VBA, 65 bytes
Una función de ventana inmediata que toma entradas
[A1:B1]
y salidas al rango[C1].Resize([A1],[A1])
.De entrada y salida
La entrada está en el rango
[A1:B1]
fuente
J , 18 bytes
Mucho más que ambas soluciones APL.
Pruébalo en línea!
fuente
MATLAB, 58 bytes (Gracias al usuario anónimo)
Simplemente llenando los elementos de la matriz con el número apropiado, ejecutando un bucle. Tal vez sea posible ser más inteligente con
arrayfun
fuente
zeros(c)
que guarda algunos bytes. ¿También viste esta respuesta de Octave, supongo que también funcionaría en Matlab?max()
tengo que tomar argumentos de la misma 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
Pruébalo en línea!
Un puerto de la respuesta de Kevin Cruijssen , que era mucho mejor que la mía.
fuente
Python 2 , 58 bytes
Pruébalo en línea!
Emite una lista 1D de longitud
C*C
.fuente
Carbón de leña , 19 bytes
Pruébalo en línea! El enlace es a la versión detallada del código. 3 bytes utilizados para convertir la salida a decimal y formatearla bien. Explicación:
fuente
Limpio , 67 bytes
Pruébalo en línea!
Define
$ :: Int Int -> [[Int]]
dar una respuesta usando indexación basada en 1.fuente
Perl 6 , 37 bytes
Pruébalo en línea!
Devuelve la matriz como una matriz unidimensional.
fuente
Mathematica 44 bytes
fuente