Es un problema común navegar en una matriz 2D. Lo hemos visto muchas veces y lo veremos nuevamente. Entonces, ayúdenos a desarrollarnos en el futuro y desarrollemos las soluciones más cortas para generar los ocho pasos posibles en una matriz 2D.
Reto
Su código debe generar los siguientes 8 pares de -1,0,1 en cualquier orden:
(0,1)
(0,-1)
(1,0)
(-1,0)
(1,1)
(1,-1)
(-1,1)
(-1,-1)
Reglas
- No hay entrada
 - El orden de salida no es relevante
 - La salida es flexible. Los pares de números solo necesitan ser distinguibles
 - Este es el código de golf , por lo que la respuesta más corta en bytes gana
 
                    
                        code-golf
                                kolmogorov-complexity
                                matrix
                                
                    
                    
                        Zarigüeya muerta
fuente
                
                fuente

(1 + 0i)?Respuestas:
Octava , 24 bytes
Pruébalo en línea!
Todavía no he visto este enfoque.
Crea una lista de enteros
[0, 1, 2, 3, 5, 6, 7, 8]y la convierte en ternario, devolviendo una matriz de caracteres:Restar
49(valor ASCII para1) de todos los caracteres da una matriz numérica:fuente
T-SQL,
8078 bytesCrea una tabla t (permanente) que contiene
(-1,0,1)y realiza una autounión con unaWHEREcláusula que excluye la0,0fila. Mi tabla no ha limpiado la tabla t , debe dejarla usted mismoLamentablemente, casi el doble de tiempo que la solución aburrida ( 44 bytes ), ya que SQL permite retornos en cadenas:
fuente
WHERE t.n OR z.n? (Usted puede, en algunos pero no todos los dialectos SQL.)An expression of non-boolean type specified in a context where a condition is expectedPure Bash (sin utilidades externas), 36
Pruébalo en línea!
Bash con Sed, 35
Pruébalo en línea!
fuente
cutpor 36 bytes también.echo {-1..1},{-1..1}|sed s/0,0.//printf %s\\n {-1..1},{-1..1}|grep 1también es 35.Python 2 , 33 bytes
Pruébalo en línea!
Dennis ahorró
35 bytes, wow. ¡Gracias!fuente
Jalea ,
876 bytesPruébalo en línea!
¡Mi primera respuesta de Jelly! Muchas gracias a Dennis por la pieza final del rompecabezas.
Ahora, veamos si puedo explicarlo ... jajaja.
-1 byte gracias a Erik; -1 byte gracias a Mr Xcoder y Dennis
fuente
3p3_2ẸƇ3.R ,
2624 bytesCréditos a @JDoe por guardar dos bytes más con un enfoque directo:
Pruébalo en línea!
La respuesta original:
Pruébalo en línea!
O para 27 bytes
Pruébalo en línea!
O para 34 bytes con factores:
Pruébalo en línea!
Esta última solución podría ser la mejor si la salida puede ser de 1 a 3 en lugar de -1 a 1.
Vea la otra respuesta R para soluciones alternativas con
expand.grido concbind.fuente
cque no tenía sentido dentro de una matriz, así quepastepasteJapt ,
131211 bytesGuardado un byte gracias a @Shaggy
Pruébalo en línea! Utiliza la
-Rbandera para poner cada elemento en su propia línea.Explicación
fuente
Japt
-Q,1513 bytesEstoy seguro de que hay un camino más corto, pero me gustó este enfoque.
Afeitado dos bytes gracias a Shaggy .
Pruébalo en línea!
fuente
Haskell , 22 bytes
Pruébalo en línea!
Laikoni guardó 1 byte.
fuente
_:l=mapM(:[1,-1])[0,0]Guarda un byte. (Tomado de la respuesta de Isaac al desafío anterior).Perl 6 , 23 bytes
Pruébalo en línea!
fuente
05AB1E ,
87 bytesPruébalo en línea!
Explicación
-1 byte gracias a Emigna!
fuente
2Ý<ã), pero estaba descubriendo cómo eliminar el elemento central de la lista de pares ... No había pensado en ordenar por valor absoluto y eliminar el primero ... +1 de mí.ʒĀZpara guardar 1MATL , 12 bytes
Pruébalo en línea!
Debido a que es el mes MATL, aquí hay un puerto MATL de la respuesta Octave de @ Stewie. La secuencia [0 1 2 3 5 6 7 8] se genera como la diferencia establecida entre [0 ... 8] y 4.
fuente
Java 8,
8342 bytes-41 bytes gracias a @AdmBorkBork mediante codificación rígida.
Pruébalo en línea.
Versión no codificada como referencia (
83727068 bytes ):-11 bytes gracias a @ OlivierGrégoire .
-2 bytes creando un puerto de respuesta JavaScript de @ETHproductions (ES6) .
Pruébalo en línea.
fuente
v->{for(int i=9;i-->0;)if(i!=4)System.out.println((i/3-1)+","+(i%3-1));}.R , 27 bytes
Pruébalo en línea!
30 y 35 bytes:
fuente
expand.grid(-1:1,-1:1)[-5,]es de 27 bytes.JavaScript (ES6)
Dos métodos alternativos, ambos más largos que el hardcoding.
49 bytes
Pruébalo en línea!
51 bytes
Pruébalo en línea!
fuente
Haskell , 27 bytes
Pruébalo en línea!
La salida es
[(0,1),(0,-1),(1,0),(1,1),(1,-1),(-1,0),(-1,1),(-1,-1)].fuente
Haskell ,
2827 bytesPruébalo en línea!
fuente
Casco ,
76 bytesHay muchas maneras diferentes (la parte difícil / costosa se está eliminando
[0,0]),7 bytes es lo más corto que pude encontrargracias a Leo por señalar que usa la conversión decimal (d) como filtro:Pruébalo en línea!
Explicación
Alternativa, 7 bytes
Pruébalo en línea!
Explicación
fuente
tπ2↑3İZ.PowerShell , 41 bytes
Pruébalo en línea!
Doble bucle for en el rango
1..-1, con un-noteal final para extraer la0,0entrada extraña . Cada uno se deja individualmente en la tubería e implícitoWrite-outputen la finalización del programa nos da nuevas líneas de forma gratuita.Lamentablemente, solo la salida de cadena básica es dos bytes más corta:
Pero eso es aburrido.
fuente
Python 2 , 39 bytes
Pruébalo en línea!
fuente
J ,
1816 bytesPruébalo en línea!
fuente
echo }.>,{;~0 1 _1TIOecho}.>,{;~0 1 _1echonecesario?CJam , 13 bytes
Pruébalo en línea!
Explicación
fuente
Befunge-93 , 24 bytes
Pruébalo en línea!
Siento que a este desafío le faltan respuestas de los lenguajes 2D, incluso si la mayoría no se mueve en diagonal. Esto genera números separados por espacios, cada par separado por pestañas.
fuente
F # (Mono) , 54 bytes
Pruébalo en línea!
44 bytes - gracias a Laikoni:
fuente
(0,0)ser el primer elemento y llamarSeq.tail: ¡ Pruébelo en línea!Brachylog , 8 bytes
Pruébalo en línea!
Explicación
fuente
MATL , 12 bytes
¡Pruébalo en MATL Online!
¡Mi primera respuesta MATL seria! Muchas gracias a Luis Mendo , Sanchises y DJMcMayhem por la ayuda.
Cómo funciona
3: qq2Z ^ [] 5Y (- Programa completo. Salidas a STDOUT. 3: - Rango 3. Empuje [1 2 3] a la pila. qq - Disminuir en 2. Rendimientos [-1 0 1]. 2Z ^ - Poder cartesiano de 2. 5Y (- Reemplace la fila en el índice 5 con ... [] - Un vector vacío.fuente
Perl 5 , 31 bytes
Pruébalo en línea!
fuente
-1..1Funcionaría en el glob?bash, pero no en Perl :(Bash , 30 bytes
Pruébalo en línea!
Imprime un espacio final en cada línea pero en la última. (Gracias a @Neil : originalmente imprimió un espacio inicial, pero un espacio final es mejor según su comentario)
fuente
Lote, 77 bytes
63 bytes si se permite un separador no estándar:
fuente
Pyth,
119 bytesPruébalo aquí
Explicación
De manera equivalente, podríamos usar
t*J+U2_1J, pero eso no es más corto.fuente