J'ai eu une fois un magnifique tableau rectangulaire. C'était très symétrique, mais malheureusement il s'est effondré et maintenant je n'ai que le coin supérieur gauche. Votre tâche consistera à reconstruire la baie d'origine.
Votre programme recevra un tableau bidimensionnel d'entiers. Pour faciliter l'analyse, vous pouvez supposer qu'ils sont tous compris entre 1 et 9. Votre tâche consiste à inverser les colonnes du tableau, ses lignes et les deux, à assembler les coins résultants et à renvoyer le tableau résultant.
Vous pouvez supposer que les dimensions du tableau seront au moins 1x1.
Cas de test:
Input:
1 2 3
4 5 6
Output:
1 2 3 3 2 1
4 5 6 6 5 4
4 5 6 6 5 4
1 2 3 3 2 1
Input:
1
Output:
1 1
1 1
Input:
9
9
9
Output:
9 9
9 9
9 9
9 9
9 9
9 9
C'est le code-golf , le moins d'octets gagne!
WS⟦ι⟧‖M→↓
peut-être? 5 octets pour lire l'entrée et 4 pour la refléter.╬
(ou un personnage similaire), je ne me souviens juste pas lequel: cRéponses:
Proton , 29 octets
Essayez-le en ligne!
Il existe cependant quelques autres approches intéressantes:
Proton , 29 octets
Essayez-le en ligne!
Vous pouvez définir la sous-fonction miroir
g
en ligne, car Proton. Ce n'est pas plus court cependant.Proton , 36 octets
Essayez-le en ligne!
Cela devrait être
(a=>zip(*(a+a[by-1])))*2
24 octets, mais la fonction zip est complètement rompue. Fondamentalement, vous le mettez en miroir et le zip, puis faites cela deux fois (vous pouvez multiplier une fonction par un entier positif pour appliquer la fonction plusieurs fois).la source
Toile , 1 octet
Essayez-le ici!
Sorties sous forme de chaîne multiligne
la source
Haskell,
2524 octetsEssayez-le en ligne!
la source
Python 3, 38 octets
Essayez-le en ligne!
Prend une liste de listes et renvoie une liste de listes.
Explication:
la source
Husk ,
76 octetsPar coïncidence, Erik avait affiché le même code exact dans le salon de discussion Husk environ une minute avant de le publier.
Essayez-le en ligne!
Version perméable, 7 octets :
la source
Rétine , 13 octets
Essayez-le en ligne!
Explication
Sur chaque ligne (
%
), faites correspondre la fin de la ligne ($
), insérez l'inverse ($^
) de la ligne entière ($`
) et imprimez le résultat avec un saut de ligne (\
). Cela fait la réflexion le long de l'axe vertical et imprime la première moitié de la sortie.Cela inverse simplement la chaîne entière, ce qui équivaut à une rotation à 180 °, ou dans notre cas (en raison de la symétrie horizontale) une réflexion le long de l'axe horizontal. De cette façon, cela fonctionne, c'est que
V
l'expression régulière (inverse) est(?m:^.*$)
, qui correspond normalement à chaque ligne de la chaîne. Cependant, nous activons l'option singlelines
, qui fait également.
correspondre les sauts de ligne et donc cette expression régulière par défaut correspond en fait à la chaîne entière.Le résultat est imprimé automatiquement à la fin du programme, nous donnant la seconde moitié de la sortie.
la source
$
sur la première ligne. ;) J'ajouterai une explication plus tard.05AB1E , 2 octets
Essayez-le en ligne!
Crédit pour M. Xcoder indiquant que les tableaux de chaîne peuvent compter comme des tableaux 2D et Pavel pour confirmer.
la source
Gelée , 5 octets
Essayez-le en ligne!
la source
m0Z$⁺
(par Hyper Neutrino).MATL , 5 octets
Essayez-le en ligne!
Explication:
la source
Octave ,
3329 octetsMerci à @Giuseppe d'avoir joué quatre octets au golf!
Essayez-le en ligne!
la source
JavaScript (Node.js) ,
62554946 octetsEssayez-le en ligne!
Parce
Array.prototype.reverse()
qu'inverse le tableau en place, je dois d'abord faire une copie peu profonde quelque part.A=>(j=x=>[...x,...x.reverse()])(A).map(j)
ne marche pas.la source
J , 12 octets
Essayez-le en ligne!
Explication
la source
awk, 88 octets
la source
Triangularité , 31 octets
Essayez-le en ligne!
Explication
En supprimant les caractères qui composent le remplissage, voici ce que fait le programme:
la source
R , 57 octets
Essayez-le en ligne!
la source
APL + WIN, 11 octets
Demande un tableau 2d d'entiers.
la source
Stax , 5 octets
Exécutez-le et déboguez-le en ligne
:m
signifie miroir, ce qui estinput.concat(reverse(input))
.m
, dans ce contexte signifie sortir chaque ligne après avoir appliqué ...Donc, mettez en miroir le tableau de lignes, puis mettez en miroir chaque ligne et chaque sortie.
la source
Japt , 6 octets
Essayez-le ici
Explication
la source
Mathematica , 29 octets
Essayez-le en ligne!
la source
SOGL V0.12 , 2 octets
-1 octet grâce à dzaima.
Essayez-le ici!
la source
APL (Dyalog Classic) , 7 octets
Essayez-le en ligne!
la source
Rubis , 35 octets
Essayez-le en ligne!
Un lambda acceptant un tableau 2D et renvoyant un tableau 2D. C'est simple, mais voici la version non golfée de toute façon:
la source
Java 8,
140131 octetsExplication:
Essayez-le en ligne.
la source
J , 11 octets
Fonction de préfixe tacite anonyme.
Essayez-le en ligne!
|:
transposer@(…)
Le résultat de:,
l'argument suivi de|.
son revers^:2
et tout cela fait deux foisla source
SNOBOL4 (CSNOBOL4) ,
119113 octetsEssayez-le en ligne!
Prend l'entrée sous forme de chaînes sur STDIN, sans espaces. Cela ne fonctionne que parce que les chiffres sont
1-9
et échoueraient autrement.la source
REVERSE
; l'arithmétique entière uniquement prise en charge d'origine, pour autant que je sache.C (gcc) ,
114111 octetsEssayez-le en ligne!
C (gcc) , 109 octets (abus de la facilité d'analyse)
Essayez-le en ligne!
la source
for(i=h+h;i-->0;puts(""))for(j=w+w;j-->0;)
printf("%d"
pour -1 octet supplémentaire.Fusain , 5 octets
Essayez-le en ligne!
Merci à ASCII uniquement pour un meilleur format d'entrée.
la source
[]
ne le fait pas exactement en 2D).Ajouter ++ , 30 octets
Essayez-le en ligne!
Le pied de page transforme simplement le tableau imbriqué dans le format de la question. Définit une fonction
f
, qui attend une matrice (tableau imbriqué) comme argument.la source
Julia 0,6 ,
5549 octetsEssayez-le en ligne!
~(i)
est une fonction pour créer une tranche dei
bas en haut1
. Donnedonc
~end
la trancheend:-1:1
!(x)
est la fonction permettant de reconstruire le tableau.la source
V , 12 octets
Essayez-le en ligne!
Explication:
la source