EL Hexágono Mágico

17

Hay muchos cuadrados mágicos, pero solo hay un hexágono mágico no trivial, como explicó el Dr. James Grime , que es el siguiente:

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

Como se hace en Hexagony, esto se escribe más fácilmente como una sola línea, simplemente leyéndola fila por fila:

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

Por supuesto, hay doce representaciones de este hexágono mágico en total, si cuenta las rotaciones y los reflejos. Por ejemplo, una rotación de 1/6 en sentido horario del hexágono anterior daría como resultado

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

@Okx pidió enumerar las variantes restantes. Las listas restantes son:

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

además de todas las listas mencionadas invertidas.

Desafío

Escriba un programa que muestre el hexágono mágico como una lista. Puede elegir cualquiera de los 12 reflejos / rotaciones del hexágono.

Agregue algunas palabras sobre cómo funciona su solución.

falla
fuente
2
¿Se puede hacer esto en hexagonía? Si es así, pondré una recompensa para recompensar esa respuesta.
Sr. Xcoder
1
@ Mr.Xcoder Cualquier cosa se puede hacer en Hexagony. Probablemente no sea muy interesante, porque dudo que pueda guardar bytes simplemente imprimiendo una de las listas literalmente.
Martin Ender

Respuestas:

5

Jalea , 11 bytes

“JɼQⱮȦ>Ȯ’Œ?

Un enlace niládico que devuelve la lista de la orientación dada refleja izquierda-derecha.

Pruébalo en línea!

¿Cómo?

Justo el tipo de cosas por las que hice Œ?

“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]
Jonathan Allan
fuente
4

Pyth, 15 bytes

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

(Los caracteres de control se reemplazan por \x06y \x11para su comodidad de visualización).

Pruébalo en línea

Cómo funciona

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

05AB1E , 14 bytes

Ambas soluciones generan la lista. [3,17,18,19,7,1,11,16,2,5,6,9,12,4,8,14,10,13,15]

19Lœ•δn2мׄÁ•è

Genera una lista de todas las permutaciones (ordenadas) del rango [1...19] e índices en esa lista con un número base 255 comprimido de base 10.

O 15 bytes ejecutables en línea

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

Descomprime una cadena base 255 en un número base 10 y la convierte en una lista de 20 dígitos base.

Pruébalo en línea!

Emigna
fuente
3

SOGL , 15 bytes

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

Explicación:

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

Jalea , 21 bytes

18473955480703453œ?19

Realmente quiero comprimir ese gran número, pero no estoy seguro de cómo.

Pruébalo en línea!

Okx
fuente
18473955480703453es 1 bytes más corto.
Emigna
Corríjame si me equivoco, pero ¿no sería más corta una lista de índices de páginas de códigos?
Nick Clifford
Compresión RE: es el mismo número que usé en el mío. Todo lo que tiene que hacer es convertir el número a la base biyectiva 250 usando ḃ250e indexar en la página de códigos (que ahora es más fácil ya que tiene un átomo niládico ØJ).
Jonathan Allan
@NickClifford también tendría 21 bytes (19 índices, una cotización abierta y una cotización cerrada).
Jonathan Allan
@ JonathanAllan Ah, lo tengo.
Nick Clifford
2

APL, 24 bytes

⎕A⍳'RQCKAGSIFEBPNHDLOMJ'

Pruébalo en línea!

¿Cómo?

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

Mathematica, 37 bytes

36^^md1o3apsqxqkfhq6~IntegerDigits~20

Explicación (eso puede ser obvio ya que Mathematica no es un lenguaje de codegolf, pero de acuerdo con el requisito de 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

Salida:

{18,17,3,11,1,7,19,9,6,5,2,16,14,8,4,12,15,13,10}
usuario202729
fuente
1
Tenga en cuenta que la complejidad de kolmogorv en realidad se trata de la compresión de datos.
flawr