C'est un problème courant de naviguer dans une matrice 2D. Nous l'avons vu à plusieurs reprises et verrons à nouveau. Alors aidons-nous à l'avenir et développons les solutions les plus courtes pour générer les huit étapes possibles dans une matrice 2D.
Défi
Votre code doit générer les 8 paires suivantes de -1,0,1 dans n'importe quel ordre:
(0,1)
(0,-1)
(1,0)
(-1,0)
(1,1)
(1,-1)
(-1,1)
(-1,-1)
Règles
- Il n'y a aucune entrée.
- L'ordre de sortie n'est pas pertinent
- La sortie est flexible. Il suffit de distinguer les paires de nombres
- Il s'agit de code-golf , donc la réponse la plus courte en octets l'emporte
code-golf
kolmogorov-complexity
matrix
Possum mort
la source
la source
(1 + 0i)
?Réponses:
Octave , 24 octets
Essayez-le en ligne!
Je n'ai pas encore vu cette approche.
Crée une liste d'entiers
[0, 1, 2, 3, 5, 6, 7, 8]
et la convertit en ternaire, renvoyant un tableau de caractères:La soustraction
49
(valeur ASCII pour1
) de tous les caractères donne un tableau numérique:la source
T-SQL,
8078 octetsCrée une table (permanente) t contenant
(-1,0,1)
et effectue une auto-jointure avec uneWHERE
clause qui exclut la0,0
ligne. Le tableau t n'est pas nettoyé par mon code, vous devez le déposer vous-même.Malheureusement, presque deux fois plus longtemps que la solution ennuyeuse ( 44 octets ), car SQL permet les retours dans les chaînes:
la source
WHERE t.n OR z.n
? (Vous pouvez le faire dans certains dialectes SQL, mais pas dans tous.)An expression of non-boolean type specified in a context where a condition is expected
Pure Bash (pas d'utilitaires externes), 36
Essayez-le en ligne!
Bash avec Sed, 35
Essayez-le en ligne!
la source
cut
pour 36 octets également.echo {-1..1},{-1..1}|sed s/0,0.//
printf %s\\n {-1..1},{-1..1}|grep 1
a également 35 ans.Python 2 , 33 octets
Essayez-le en ligne!
Dennis a économisé
35 octets, wow. Merci!la source
Gelée ,
876 octetsEssayez-le en ligne!
Ma toute première réponse Jelly! Un grand merci à Dennis pour la dernière pièce du puzzle.
Maintenant, voyons si je peux l'expliquer ... lol.
-1 octet grâce à Erik; -1 octet merci à Mr Xcoder et Dennis
la source
3p3_2ẸƇ
3
.R ,
2624 octetsCrédits à @JDoe pour avoir économisé deux octets supplémentaires avec une approche directe:
Essayez-le en ligne!
La réponse d'origine:
Essayez-le en ligne!
Ou pour 27 octets
Essayez-le en ligne!
Ou pour 34 octets avec des facteurs:
Essayez-le en ligne!
Cette dernière solution pourrait être la plus golfique si la sortie pouvait être de 1 à 3 plutôt que de -1 à 1.
Voir l'autre réponse R pour des solutions alternatives avec
expand.grid
ou aveccbind
.la source
c
ce qui n'avait pas de sens à l'intérieur d'une matrice, donc je suis passé aupaste
format de sortie d'origine ...paste
Japt ,
131211 octetsUn octet enregistré grâce à @Shaggy
Essayez-le en ligne! Utilise le
-R
drapeau pour mettre chaque élément sur sa propre ligne.Explication
la source
Japt
-Q
,1513 octetsJe suis sûr qu'il y a un chemin plus court, mais j'ai aimé cette approche.
Rasé de deux octets grâce à Shaggy .
Essayez-le en ligne!
la source
Haskell , 22 octets
Essayez-le en ligne!
Laikoni a enregistré 1 octet.
la source
_:l=mapM(:[1,-1])[0,0]
enregistre un octet. (Tiré de la réponse d' Isaacg au défi précédent).Perl 6 , 23 octets
Essayez-le en ligne!
la source
05AB1E ,
87 octetsEssayez-le en ligne!
Explication
-1 octet grâce à Emigna!
la source
2Ý<ã
), mais était en train de trouver comment supprimer l'élément central de la liste des paires .. Je n'avais pas pensé à trier par valeur absolue et à supprimer le premier .. +1 de moi.ʒĀZ
pour enregistrer 1MATL , 12 octets
Essayez-le en ligne!
Parce que c'est le mois MATL, voici un port MATL de la réponse Octave de @ Stewie. La séquence [0 1 2 3 5 6 7 8] est générée comme la différence définie entre [0 ... 8] et 4.
la source
Java 8,
8342 octets-41 octets grâce à @AdmBorkBork par codage en dur ..
Essayez-le en ligne.
Version non codée en dur comme référence (
83727068 octets ):-11 octets grâce à @ OlivierGrégoire .
-2 octets créant un port de réponse JavaScript (ES6) @ETHproductions .
Essayez-le en ligne.
la source
v->{for(int i=9;i-->0;)if(i!=4)System.out.println((i/3-1)+","+(i%3-1));}
.R , 27 octets
Essayez-le en ligne!
30 et 35 octets:
la source
expand.grid(-1:1,-1:1)[-5,]
est de 27 octets.JavaScript (ES6)
Deux méthodes alternatives, toutes deux plus longues que le codage en dur.
49 octets
Essayez-le en ligne!
51 octets
Essayez-le en ligne!
la source
Haskell , 27 octets
Essayez-le en ligne!
La sortie est
[(0,1),(0,-1),(1,0),(1,1),(1,-1),(-1,0),(-1,1),(-1,-1)]
.la source
Haskell ,
2827 octetsEssayez-le en ligne!
la source
Husk ,
76 octetsIl y a beaucoup de façons différentes (la partie délicate / coûteuse se débarrasse
[0,0]
),7 octets est le plus court que j'ai pu trouvergrâce à Leo pour avoir indiqué d'utiliser la conversion décimale (d
) comme filtre:Essayez-le en ligne!
Explication
Alternative, 7 octets
Essayez-le en ligne!
Explication
la source
tπ2↑3İZ
.PowerShell , 41 octets
Essayez-le en ligne!
Boucle double sur la plage
1..-1
, avec une-n
ote
quals à la fin pour retirer l'0,0
entrée étrangère . Ils sont chacun individuellement laissés sur le pipeline et implicitesWrite-output
à la fin du programme nous donne gratuitement de nouvelles lignes.Malheureusement, seule la sortie de la chaîne barebones est plus courte de deux octets:
Mais c'est ennuyeux.
la source
Python 2 , 39 octets
Essayez-le en ligne!
la source
J ,
1816 octetsEssayez-le en ligne!
la source
echo }.>,{;~0 1 _1
TIOecho}.>,{;~0 1 _1
echo
nécessaire?CJam , 13 octets
Essayez-le en ligne!
Explication
la source
Befunge-93 , 24 octets
Essayez-le en ligne!
J'ai l'impression que ce défi manque de réponses des langages 2D, même si la plupart ne bougent pas en diagonale. Cela génère des nombres séparés par des espaces, chaque paire séparée par des tabulations.
la source
F # (Mono) , 54 octets
Essayez-le en ligne!
44 octets - merci à Laikoni:
la source
(0,0)
été le premier élément et en appelantSeq.tail
: Essayez-le en ligne!Brachylog , 8 octets
Essayez-le en ligne!
Explication
la source
MATL , 12 octets
Essayez-le sur MATL Online!
Ma toute première réponse MATL sérieuse! Merci beaucoup à Luis Mendo , Sanchises et DJMcMayhem pour l'aide.
Comment ça marche
la source
Perl 5 , 31 octets
Essayez-le en ligne!
la source
-1..1
dans le monde?bash
, mais pas en Perl :(Bash , 30 octets
Essayez-le en ligne!
Imprime un espace de fin sur chaque ligne mais la dernière. (Merci à @Neil - cela imprimait à l'origine un espace de début, mais un espace de fin est meilleur selon leur commentaire)
la source
Lot, 77 octets
63 octets si un séparateur non standard est autorisé:
la source
Pyth,
119 octetsEssayez-le ici
Explication
De manière équivalente, nous pourrions utiliser
t*J+U2_1J
, mais ce n'est pas plus court.la source