L'hexagone magique


17

Il existe de nombreux carrés magiques, mais il n'y a qu'un seul hexagone magique non trivial, comme l'a expliqué le Dr James Grime , qui est le suivant:

  18 17  3
 11  1  7 19
9  6  5  2 16
 14  8  4 12
  15 13 10

Comme cela se fait dans Hexagony, c'est plus facile à écrire en une seule ligne, en le lisant ligne par ligne:

18 17 3 11 1 7 19 9 6 5 2 16 14 8 4 12 15 13 10

Bien sûr, il existe douze représentations de cette liste de cet hexagone magique au total, si vous comptez les rotations et les réflexions. Par exemple, une rotation de 1/6 dans le sens horaire de l'hexagone ci-dessus entraînerait

9 11 18 14 6 1 17 15 8 5 7 3 13 4 2 19 10 12 16

@Okx a demandé de répertorier les variantes restantes. Les listes restantes sont:

15 14 9 13 8 6 11 10 4 5 1 18 12 2 7 17 16 19 3
3 17 18 19 7 1 11 16 2 5 6 9 12 4 8 14 10 13 15
18 11 9 17 1 6 14 3 7 5 8 15 19 2 4 13 16 12 10
9 14 15 11 6 8 13 18 1 5 4 10 17 7 2 12 3 19 16

ainsi que toutes les listes mentionnées inversées.

Défi

Écrivez un programme qui affiche l'hexagone magique sous forme de liste. Vous pouvez choisir l' une des 12 réflexions / rotations de l'hexagone.

Veuillez ajouter quelques mots sur le fonctionnement de votre solution.


2
Peut-on le faire en hexagone? Si oui, je mettrai une prime pour récompenser cette réponse.
— M. Xcoder

1
@ Mr.Xcoder Tout peut être fait en Hexagonie. Cela ne sera probablement pas très intéressant, car je doute que vous puissiez économiser des octets au lieu d'imprimer littéralement l'une des listes.
— Martin Ender

Réponses:



5

Jelly , 11 octets

“JɼQⱮȦ>Ȯ’Œ?

Un lien niladique renvoyant la liste de l'orientation donnée se reflète de gauche à droite.

Essayez-le en ligne!

Comment?

Juste le genre de chose pour laquelle j'ai fait Œ?

“JɼQⱮȦ>Ȯ’Œ? - Niladic link: no arguments
“JɼQⱮȦ>Ȯ’   - base 250 number, 18473955480703453
         Œ? - shortest permutation of some set of natural numbers one through to some N
            -   inclusive which would lie at that index in a list of all permutations of
            -   those same natural numbers when sorted lexicographically.
            -
            -   - for example 7Œ?:
            -   - since 7 is greater than 3! and less than 4!+1, it references four items
            -   - the sorted order of permutations of 4 items is:
            -   - [[1,2,3,4],[1,2,4,3],[1,3,2,4],[1,3,4,2],[1,4,2,3],[1,4,3,2],[2,1,3,4], ...]
            -   - so 7Œ? yields [2,1,3,4]

4

Pyth, 15 octets

.PC"A¡öò\x06\x11Ý"S19

(Les caractères de contrôle sont remplacés par \x06et \x11pour votre commodité d'affichage.)

Essayez-le en ligne

Comment ça fonctionne

   "A¡öò\x06\x11Ý"      magic string
  C                     convert to number n using codepoints as base-256 digits
.P                S19   nth lexicographic permutation of [1, …, 19]

4

05AB1E , 14 octets

Les deux solutions génèrent la liste [3,17,18,19,7,1,11,16,2,5,6,9,12,4,8,14,10,13,15]

19Lœ•δn2мׄÁ•è

Génère une liste de toutes les permutations (triées) de la plage [1...19] et indexe dans cette liste avec un nombre de base 10 compressé en base 255.

Ou 15 octets exécutables en ligne

•áRвºñ*$vn+•20в

Décompresse une chaîne de base 255 en un nombre de base 10 et convertit en une liste de 20 chiffres de base.

Essayez-le en ligne!


3

SOGL , 15 octets

³←@uΙΒQH√y׀“L«─

Explication:

...“     push the number 4121998669867569415662783
    L«   push 20
      ─  convert 4121998669867569415662783 from base 10 to a base 20 number aka base 10 array 

3

Gelée , 21 octets

18473955480703453œ?19

Je veux vraiment compresser ce grand nombre, mais je ne sais pas comment.

Essayez-le en ligne!


18473955480703453est 1 octet plus court.
— Emigna

Corrigez-moi si je me trompe, mais une liste d'index de pages de codes ne serait-elle pas plus courte?
— Nick Clifford

Compression RE: C'est le même nombre que j'ai utilisé dans le mien. Tout ce que vous avez à faire est de convertir le nombre en base bijective 250 en utilisant ḃ250et d'indexer dans la page de code (ce qui est maintenant plus facile car il y a un atome niladique pour cela ØJ).
— Jonathan Allan

@NickClifford, ce serait aussi 21 octets (19 index, un devis ouvert et un devis proche).
— Jonathan Allan

@JonathanAllan Ah, j'ai compris.
— Nick Clifford

2

APL, 24 octets

⎕A⍳'RQCKAGSIFEBPNHDLOMJ'

Essayez-le en ligne!

Comment?

⎕A                        ⍝ 'ABC...
   ⍳                       ⍝ indices of
    'RQCKAGSIFEBPNHDLOMJ'  ⍝ ← this vector


0

Mathematica, 37 octets

36^^md1o3apsqxqkfhq6~IntegerDigits~20

Explication (cela peut déjà être évident car Mathematica n'est pas un langage de codegolf, mais selon l'exigence OP):

36  : Number base
^^  : Input a number in arbitrary base. See BaseForm documentation
md1o3apsqxqkfhq6 : the number in base 36
~IntegerDigits~20 : convert to base 20 as list of digits

Production:

{18,17,3,11,1,7,19,9,6,5,2,16,14,8,4,12,15,13,10}

1
Notez que la complexité kolmogorv concerne en fait la compression des données.
— flawr

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.