Dado n=m^2
, retorne uma lista de números inteiros que não fazem fronteira com a m x m
grade de números inteiros 1 to n
.
Exemplos
n = 1 (m = 1)
Rede:
[1]
Retorna:
[]
n = 4 (m = 2)
Rede:
[1,2]
[3,4]
Retorna:
[]
n = 9 (m = 3)
Rede:
[1,2,3]
[4,5,6]
[7,8,9]
Retorna:
[5]
n = 16 (m = 4)
Rede:
[ 1, 2, 3, 4]
[ 5, 6, 7, 8]
[ 9,10,11,12]
[13,14,15,16]
Retorna:
[6,7,10,11]
Para valores mais altos de m
, esta resposta faz uma ótima visualização.
Regras:
- Você pode participar
m
oun
(onden = m*m
).- Se tomar no
n
que você está autorizado a ter um comportamento indefinido onde não há existem
paran
(EG 15). n > 0
,m > 0
: Ambos devem ser valores inteiros.
- Se tomar no
- A saída pode ser como uma matriz 1D / 2D, delimitada por matriz ou espaço em branco
- A saída deve estar em ordem do menor para o maior.
- Se produzir como uma matriz, isso significa que deve ser como seria na grade.
- Isso é código-golfe , vitórias mais baixas na contagem de bytes.
Respostas:
C, 50 bytes
Experimente online!
fonte
Oitava , 31 bytes
Retorna uma matriz.
Experimente online!
fonte
vec2mat
função antes.Oitava , 26 bytes
O código define uma função anônima que insere
m
e gera um vetor de coluna (possivelmente vazio).Experimente online!
Explicação
fonte
Gelatina , 8 bytes
Um link monádico obtendo
m
e retornando uma lista de listas (as linhas internas).Experimente online!
Quão?
fonte
Pure Bash, 49
A resposta chata:
Experimente online .
Ou a resposta interessante para 52:
Experimente online .
fonte
Haskell , 31 bytes
Experimente online!
Versão matemática:
: P
fonte
f(5)
deve ser #7,8,9,12,13,14,17,18,19
R ,
444332 bytesExperimente online!
Retorna um vetor.
fonte
print
função para amatrix
.m
emmatrix(1:m^2,m,m,T)
:matrix(1:m^2,m,,T)
Geléia , 8 bytes
Experimente online!
fonte
m
um poderia fazer²s⁸ḊṖ$⁺€
também. (Eu também postou outram
método alternativo.)⁸
:(Próton , 28 bytes
Experimente online!
Toma m como entrada.
Quão?
Filtra os números inteiros em [k, k 2 -k) que, quando divididos por k , produzem um restante maior que 1 . Isso garante que as duas extremidades sejam cortadas, porque a primeira produz 0 e a última produz 1 . Também é garantido o retorno de um valor mais alto para qualquer número inteiro válido, porque eles são consecutivos.
fonte
Wolfram Language (Mathematica) , 31 bytes
Experimente online!
fonte
Utilitários Bash + GNU, 35
Experimente online .
fonte
05AB1E , 9 bytes
Experimente online!
fonte
LItä¦¨ε¦¨
está bom, a saída pode ser uma matriz 2D.Python 2 , 44 bytes
Experimente online!
Prometo que esta é minha última resposta (para esse desafio) hoje. Toma m como entrada.
fonte
Ruby , 32 bytes
Toma
m
, retorna uma matriz unidimensional.Experimente online!
fonte
MATL , 8 bytes
Entrada é
m
. Saída são os números em ordem crescente.Experimente online!
Explicação
Considere a entrada
4
como um exemplo.fonte
APL (Dyalog Classic) , 14 bytes
Experimente online!
fonte
Lote, 85 bytes
Eu não posso fazer um loop facilmente de
2
para,m-1
então faço loop de3
param
e ajusto no cálculo.fonte
Julia 0.6 , 36 bytes
Experimente online!
fonte
Pari / GP , 26 bytes
Experimente online!
fonte
Japonês, 12 bytes
Passei tanto tempo jogando golfe na extração de elementos que fiquei sem tempo para jogar golfe na geração do array. Agora também estou percebendo que podemos tomar
n
como entrada, para que eu possa salvar algo lá. Para ser revisitado ...Tente
Explicação
fonte
J ,
2319 bytes-4 bytes graças ao FrownyFrog!
Experimente online!
Minha olução original:
J , 23 bytes
Pega n como entrada, retorna uma matriz
Como funciona
1+i.
- gera uma lista 1..n-@%:
- encontra a raiz quadrada de n e a nega (m)]\
- cria uma tabela (matriz) mxm da lista^:2
- faça o seguinte duas vezes:|:@}:@}.
- solte a primeira linha, solte a última linha e transponha[:
- tampe o garfoExperimente online!
fonte
1}:@}.-@%:}.@}:\1+i.
1 1}:@}.-@%:}:\1+i.
}.
Casca , 9 bytes
Experimente online!
Explicação
fonte
Japonês , 14 bytes
Toma
m
como entradaExplicação
Experimente online!
A solução utilizada
n
também é de 14 bytes:Experimente online!
fonte
TI-BASIC,
4443 bytes (tokenizado)Versão legível:
Infelizmente, era necessário imprimir listas vazias manualmente, pois o TI-BASIC normalmente não permite isso. Se o número
m
for maior que dois, o código poderá ser reduzido para apenas 29 bytes .fonte
Pitão , 10 bytes
Experimente aqui!
Toma m como entrada.
fonte
Vermelho ,
6362 bytesExperimente online!
Esta é uma porta vermelha da solução Python 2 de Haskell / Mr. Xcoder da totallyhuman
fonte
Limpo , 45 bytes
Experimente online!
Esta é apenas a resposta de Haskell totalmente humana, mas em Clean.
fonte
Pyt , 13 bytes
Porto de Resposta da geléia do Jonathan Allan
Explicação:
Experimente online!
fonte
Python, 111 bytes
fonte
Java 8 ,
241183170162160132122 bytesExperimente online!
O Java torna muito difícil (muitos bytes) quando você precisa criar uma matriz de tamanho um tanto "desconhecido".
fonte
Groovy
basicamente Java de taquigrafia.int
, alterando||
para|
e removendo os colchetes do corpo if de linha única.