Le défi est simplement; produire les six tableaux entiers 2D suivants:
[[ 1, 11, 21, 31, 41, 51],
[ 3, 13, 23, 33, 43, 53],
[ 5, 15, 25, 35, 45, 55],
[ 7, 17, 27, 37, 47, 57],
[ 9, 19, 29, 39, 49, 59]]
[[ 2, 11, 22, 31, 42, 51],
[ 3, 14, 23, 34, 43, 54],
[ 6, 15, 26, 35, 46, 55],
[ 7, 18, 27, 38, 47, 58],
[10, 19, 30, 39, 50, 59]]
[[ 4, 13, 22, 31, 44, 53],
[ 5, 14, 23, 36, 45, 54],
[ 6, 15, 28, 37, 46, 55],
[ 7, 20, 29, 38, 47, 60],
[12, 21, 30, 39, 52]]
[[ 8, 13, 26, 31, 44, 57],
[ 9, 14, 27, 40, 45, 58],
[10, 15, 28, 41, 46, 59],
[11, 24, 29, 42, 47, 60],
[12, 25, 30, 43, 56]]
[[16, 21, 26, 31, 52, 57],
[17, 22, 27, 48, 53, 58],
[18, 23, 28, 49, 54, 59],
[19, 24, 29, 50, 55, 60],
[20, 25, 30, 51, 56]]
[[32, 37, 42, 47, 52, 57],
[33, 38, 43, 48, 53, 58],
[34, 39, 44, 49, 54, 59],
[35, 40, 45, 50, 55, 60],
[36, 41, 46, 51, 56]]
Quels sont ces tableaux entiers 2D? Ce sont les nombres utilisés dans un tour de magie avec des cartes contenant ces nombres:
Le tour de magie demande à quelqu'un de penser à un nombre dans la plage [1, 60] et de donner à celui qui effectue le tour de magie toutes les cartes qui contiennent ce numéro. Celui qui exécute le tour de magie peut ensuite additionner les nombres en haut à gauche (tous une puissance de 2) des cartes données pour arriver au nombre auquel la personne pensait. Vous trouverez ici quelques explications supplémentaires sur les raisons de ce fonctionnement.
Règles du défi:
- Vous pouvez sortir les six tableaux entiers 2D dans n'importe quel format raisonnable. Peut être imprimé avec des délimiteurs; peut être un tableau d'entiers 3D contenant les six tableaux d'entiers 2D; peut être une liste de chaînes de lignes; etc.
- Vous êtes autorisé à remplir la position en bas à droite des quatre dernières cartes avec une valeur négative dans la plage
[-60, -1]
ou le caractère'*'
au lieu de le laisser pour faire des matrices rectangulaires de tableaux entiers 2D (non, vous n'êtes pas autorisé à les remplir avec0
ou un non -entier commenull
/undefined
comme alternative, à l'exception du fait*
qu'une étoile est également utilisée dans les cartes réelles). - L'ordre des nombres dans les matrices est obligatoire. Bien que cela n'ait pas d'importance pour le tour de magie physique, je vois ce défi principalement comme une matrice - une complexité kolmogorov , d'où la restriction de la commande.
L'ordre des matrices elles-mêmes dans la liste de sortie peut être dans n'importe quel ordre, car il est clair sur la carte en haut à gauche quelle matrice est laquelle.
Règles générales:
- C'est le code-golf , donc la réponse la plus courte en octets l'emporte.
Ne laissez pas les langues de golf de code vous décourager de publier des réponses avec des langues autres que le golf de code. Essayez de trouver une réponse aussi courte que possible pour «n'importe quel» langage de programmation. - Des règles standard s'appliquent à votre réponse avec des règles d'E / S par défaut , vous êtes donc autorisé à utiliser STDIN / STDOUT, des fonctions / méthodes avec les paramètres appropriés et des programmes complets de type retour. Ton appel.
- Les failles par défaut sont interdites.
- Si possible, veuillez ajouter un lien avec un test pour votre code (par exemple TIO ).
- De plus, l'ajout d'une explication à votre réponse est fortement recommandé.
code-golf
number
kolmogorov-complexity
matrix
Kevin Cruijssen
la source
la source
n
apparaît sur lak
'e carte; où mon défi est un KC-challenge pour sortir les six matrices.)[ascii-art]
défi avec des règles de sortie strictes (MD5), où les miennes sont très flexibles (et les lignes / colonnes sont échangées, et la plage est[1,60]
au lieu de[1,63]
; des différences assez mineures, mais quand même).Réponses:
MATL ,
1211 octets-1 octet grâce au maître lui-même :)
Explication:
Essayez-le en ligne!
la source
Perl 6 ,
6346 octetsEssayez-le en ligne!
Sorties sous forme de tableaux 2D sur plusieurs lignes, avec le dernier tableau de chacun coupé si nécessaire.
la source
Python 2 , 76 octets
Essayez-le en ligne!
La méthode ici consiste à créer une liste de tous les numéros possibles
r(61)
, puis à la réduire à la liste des numéros d'une cartei&2**k
.Ensuite, en utilisant le découpage de liste, cette liste 1D de nombres est réorganisée à la taille de carte 6x5 correcte
[card nums][j::5]for j in r(5)
.Ensuite, ce générateur est simplement répété pour 6 cartes
for k in r(6)
.Bien que je n'aie pas trouvé de solutions de moins de 76 octets, voici deux autres qui font également 76 octets:
Essayez-le en ligne!
Ce prochain est inspiré par Jonathan Allan .
Essayez-le en ligne!
Tous les commentaires sont grandement appréciés.
la source
Fusain , 26 octets
Essayez-le en ligne! Le lien est vers la version détaillée du code. J'ai essayé de calculer les entrées directement, mais c'était déjà 27 octets avant d'ajuster le
*
en bas à droite. Sort chaque ligne jointe avec des espaces et une ligne vierge entre les cartes. Explication:la source
*
pour le plaisir après avoir vu les étoiles sur les cartes réelles. Je me demandais s'il y aurait des langues qui l'utilisent, mais je suis content de voir au moins une. :) Bonne réponse!*
est au moins aussi court que n'importe quoi d'autre.05AB1E , 16 octets
Essayez-le en ligne!
Explication
05AB1E , 17 octets
Essayez-le en ligne!
Explication
la source
Husk , 13 octets
Essayez-le en ligne!
Explication
la source
Python 2 ,
82807874 octetsEssayez-le en ligne!
-4 octets, merci à Jonathan Allan
la source
iter
mot-clé est redondant ici car un générateur fera aussi bien le travail .Japt , 14 octets
Essayez-le
la source
JavaScript (ES6),
9088 octetsEssayez-le en ligne!
Commenté
la source
Python 2 , 73 octets
Inspiration tirée à la fois de TFeld et de Matt .
Essayez-le en ligne!
la source
C (gcc) , 95 octets
Essayez-le en ligne!
Renvoie les matrices sous forme de tableau int 3D dans o.
Les 4 dernières matrices ont -1 comme dernière valeur.
Enregistré 2 octets grâce à Kevin Cruijssen.
Enregistré
78 octets grâce à Arnauld.la source
o[i][4][5]=-1;for(j=k=0;
pourfor(o[i][4][5]=-1,j=k=0;
que les crochets puissent être supprimés. Belle réponse btw, +1 de ma part.#include
pour montrer que cela fonctionne sans luiCJam (18 octets)
Démo en ligne . Il s'agit d'un programme complet qui sort sur stdout.
Dissection
la source
Gelée , 13 octets
Un lien niladique qui produit une liste de (6) listes de listes d'entiers. (Il génère l'utilisation de l'option par défaut de
*
remplissage nul ou négatif.)Essayez-le en ligne!
Comment?
Beaucoup de 15 sans réaliser l'astuce "minimal par la longueur lorsqu'il est divisé en cinq":
... et, tout en essayant de trouver plus court, j'ai obtenu un autre 13 sans avoir du tout besoin de l'astuce:
la source
Wolfram Language (Mathematica) , 88 octets
la source
Transpose@Partition[#~Append~-1,5]&/@Last@Reap[Do[Sow[k,k~NumberExpand~2],{k,60}],Except@0]
~
astuce dans un autre endroit et remplacé la variablek
parNull
. Désolé, pas le temps d'ajouter un lien tio.Wolfram Language (Mathematica) , 99 octets
Essayez-le en ligne!
la source
Transpose@
au lieu deTranspose[...]
; remplissage à 30 entrées avant le partitionnement; utiliserTable[...,{k,6}]
pour éviter d'avoir besoink=#
.Transpose@
fonctionne une fois que vous déplacez à l'PadRight
intérieurPartition
. Un autre commentaire est que la question ne semble pas autoriser""
l'espace réservé; vous pouvez le remplacer par-1
sans perdre aucun octet.Gelée , 13 octets
Essayez-le en ligne!
Librement basé sur la réponse MATL de flawr . Un lien niladique qui génère une liste de listes selon les besoins.
la source
R , 73 octets
Je ne suis pas entièrement sûr d'avoir satisfait à l'exigence de commande, car R par défaut remplit les matrices par colonne, donc l'ordre tel qu'il apparaît physiquement sur les cartes est le même que la façon dont les matrices sont allouées dans R.
Essayez-le en ligne!
la source
T-SQL, (
1 1681 139 octets)Je voulais juste savoir que je pouvais le faire.
Version optimisée
Démo en ligne
Essayez-le en ligne!
Version détaillée - avec des notes comme commentaires SQL
Voila!
Remarque 1: une partie de la logique concerne le rendu des crochets et des virgules.
Remarque 2: les versions plus récentes de SQLServer ont des approches plus compactes pour créer des listes séparées par des virgules. (Cela a été créé sur SQL Server 2016.)
Remarque 3: Les tableaux pour une carte donnée ne sont pas triés (ce qui est correct selon les spécifications). Les nombres dans un tableau sont correctement triés. Dans ce cas, chaque "carte" de la question, rend ses tableaux sur une ligne distincte dans les résultats.
Tableaux plus courts à code dur?
Oui.
Byte moi.
la source
C # (Visual C # Interactive Compiler) , 112 octets
Essayez-le en ligne!
la source
Rouge ,
108107 octetsEssayez-le en ligne!
la source
APL + WIN,
6562 octetsEssayez-le en ligne! Gracieuseté de Dyalog Classic
la source
MATLAB, 155 octets
Cela pourrait être plus court que plusieurs lignes, mais je voulais le faire en une seule ligne de code.
la source
05AB1E , 14 octets
Essayez-le en ligne!
la source
žO
lieu de juste6L
? Je sais que vous ne les utilisez pas dans votre carte, mais je suis curieux de savoir pourquoi vous avez utiliséaeiouy
pour créer une liste avec 6 valeurs. xD Belle réponse, btw!6L
,6и
,5Ý
,5°
ou9!
.тœ
,₅œ
,₁œ
, aussi le travail, ceux -ci sont assez cool aussi (:₆b
fonctionnerait aussi;)