Dado n=m^2
, devuelve una lista de enteros que no bordean la m x m
cuadrícula de enteros 1 to n
.
Ejemplos
n = 1 (m = 1)
Cuadrícula:
[1]
Regreso:
[]
n = 4 (m = 2)
Cuadrícula:
[1,2]
[3,4]
Regreso:
[]
n = 9 (m = 3)
Cuadrícula:
[1,2,3]
[4,5,6]
[7,8,9]
Regreso:
[5]
n = 16 (m = 4)
Cuadrícula:
[ 1, 2, 3, 4]
[ 5, 6, 7, 8]
[ 9,10,11,12]
[13,14,15,16]
Regreso:
[6,7,10,11]
Para valores más altos de m
, esta respuesta hace una gran visualización.
Reglas:
- Puede tomar cualquiera
m
on
(donden = m*m
).- Si se toma en
n
que se les permite tener un comportamiento indefinido donde no existem
paran
(por ejemplo, 15). n > 0
,m > 0
: Ambos deben ser valores enteros.
- Si se toma en
- La salida puede ser como una matriz 1D / 2D, matriz o espacio en blanco delimitado
- La salida debe estar en orden de menor a mayor.
- Si sale como una matriz, esto significa que debe ser como sería en la cuadrícula.
- Este es el código de golf , el menor recuento de bytes gana.
Respuestas:
C, 50 bytes
Pruébalo en línea!
fuente
Octava , 31 bytes
Devuelve una matriz.
Pruébalo en línea!
fuente
vec2mat
función antes.Octava , 26 bytes
El código define una función anónima que ingresa
m
y emite un vector de columna (posiblemente vacío).Pruébalo en línea!
Explicación
fuente
Jalea , 8 bytes
Un enlace monádico que toma
m
y devuelve una lista de listas (las filas internas).Pruébalo en línea!
¿Cómo?
fuente
Pure Bash, 49
La aburrida respuesta:
Pruébalo en línea .
O la respuesta interesante para 52:
Pruébalo en línea .
fuente
Haskell , 31 bytes
Pruébalo en línea!
Versión matemática:
:PAG
fuente
f(5)
debería ser7,8,9,12,13,14,17,18,19
R ,
444332 bytesPruébalo en línea!
Devuelve un vector.
fuente
print
función para amatrix
.m
enmatrix(1:m^2,m,m,T)
:matrix(1:m^2,m,,T)
Jalea , 8 bytes
Pruébalo en línea!
fuente
m
uno también podría hacerlo²s⁸ḊṖ$⁺€
. (También he publicado otrom
método alternativo)⁸
:(Protón , 28 bytes
Pruébalo en línea!
Toma m como entrada.
¿Cómo?
Filtra los enteros en [k, k 2 -k) que, cuando se dividen entre k , producen un resto superior a 1 . Esto asegura que ambos extremos estén recortados, porque el primero produce 0 y el último produce 1 . También se garantiza que devolverá un valor más alto para cualquier número entero válido, ya que son consecutivos.
fuente
Wolfram Language (Mathematica) , 31 bytes
Pruébalo en línea!
fuente
Bash + GNU utilidades, 35
Pruébalo en línea .
fuente
05AB1E , 9 bytes
Pruébalo en línea!
fuente
LItä¦¨ε¦¨
está bien, la salida puede ser una matriz 2D.Python 2 , 44 bytes
Pruébalo en línea!
Prometo que esta es mi última respuesta (a este desafío) hoy. Toma m como entrada.
fuente
Ruby , 32 bytes
Toma
m
, devuelve una matriz unidimensional.Pruébalo en línea!
fuente
MATL , 8 bytes
Entrada es
m
. La salida es los números en orden creciente.Pruébalo en línea!
Explicación
Considere la entrada
4
como un ejemplo.fuente
APL (Dyalog Classic) , 14 bytes
Pruébalo en línea!
fuente
Lote, 85 bytes.
No puedo pasar fácilmente de
2
a,m-1
así que hago un ciclo de3
am
y me ajusto en el cálculo.fuente
Julia 0.6 , 36 bytes
Pruébalo en línea!
fuente
Pari / GP , 26 bytes
Pruébalo en línea!
fuente
Japt, 12 bytes
Pasé tanto tiempo jugando al golf en la extracción de elementos que me quedé sin tiempo para jugar golf en la generación de matrices. También ahora solo me doy cuenta de que podemos tomar
n
como entrada en su lugar, así que puedo guardar algo allí. Para ser revisado ...Intentalo
Explicación
fuente
J ,
2319 bytes-4 bytes gracias a FrownyFrog!
Pruébalo en línea!
Mi solución original:
J , 23 bytes
Toma n como entrada, devuelve una matriz
Cómo funciona
1+i.
- genera una lista 1..n-@%:
- encuentra la raíz cuadrada de n y la niega (m)]\
- hace una tabla (matriz) mxm de la lista^:2
- haga lo siguiente dos veces:|:@}:@}.
- suelte la primera fila, luego suelte la última fila, luego transponga[:
- tapa el tenedorPruébalo en línea!
fuente
1}:@}.-@%:}.@}:\1+i.
1 1}:@}.-@%:}:\1+i.
}.
Casco , 9 bytes
Pruébalo en línea!
Explicación
fuente
Japt , 14 bytes
Toma
m
como entradaExplicación
Pruébalo en línea!
La solución que toma
n
también es de 14 bytes:Pruébalo en línea!
fuente
TI-BASIC,
4443 bytes (tokenizado)Versión legible:
Desafortunadamente, fue necesario imprimir listas vacías manualmente, ya que TI-BASIC normalmente no lo permite. Si
m
se dieran más de dos, el código podría reducirse a solo 29 bytes .fuente
Pyth , 10 bytes
Pruébalo aquí!
Toma m como entrada.
fuente
Rojo ,
6362 bytesPruébalo en línea!
Este es un puerto rojo de la solución Python 2 de Haskell / Mr. Xcoder del totalmente humano
fuente
Limpio , 45 bytes
Pruébalo en línea!
Esta es la respuesta de Haskell totalmente humana, pero en Clean.
fuente
Pyt , 13 bytes
Puerto de Jonathan Allan's Jelly respuesta
Explicación:
Pruébalo en línea!
fuente
Python, 111 bytes
fuente
Java 8 ,
241183170162160132122 bytesPruébalo en línea!
Java lo hace muy difícil (muchos bytes) cuando tiene que crear una matriz de tamaño algo "desconocido".
fuente
Groovy
básicamente Java.int
, cambiando||
a|
y eliminando los corchetes del if-body de una sola línea.