THE Hexagon Ajaib

17

Ada banyak kotak ajaib, tetapi hanya ada satu segi enam sihir non-sepele, seperti yang dijelaskan oleh Dr. James Grime , yaitu:

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

Seperti yang dilakukan dalam Hexagony ini paling mudah ditulis hanya sebagai satu baris, dengan hanya membacanya baris demi baris:

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

Tentu saja ada dua belas representasi daftar seperti segi enam ajaib ini secara total, jika Anda menghitung rotasi dan refleksi. Misalnya rotasi 1/6 searah jarum jam dari segi enam di atas akan menghasilkan

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

@Okx diminta untuk membuat daftar varian yang tersisa. Daftar yang tersisa adalah:

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

ditambah semua daftar yang disebutkan dibalik.

Tantangan

Tulis program yang menampilkan hexagon ajaib sebagai daftar. Anda dapat memilih salah satu dari 12 refleksi / rotasi hexagon.

Harap tambahkan beberapa kata tentang cara kerja solusi Anda.

cacat
sumber
2
Bisakah ini dilakukan dalam hexagony? Jika demikian, saya akan memberikan hadiah untuk menghargai jawaban itu.
Tuan Xcoder
1
@ Mr.Xcoder Apa pun bisa dilakukan di Hexagony. Mungkin tidak akan terlalu menarik, karena saya ragu Anda akan dapat menyimpan byte hanya dengan mencetak salah satu daftar secara harfiah.
Martin Ender

Jawaban:

5

Jelly , 11 byte

“JɼQⱮȦ>Ȯ’Œ?

Tautan niladik yang mengembalikan daftar orientasi yang diberikan tercermin dari kiri-kanan.

Cobalah online!

Bagaimana?

Jenis barang yang saya buat Œ?

“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
sumber
4

Pyth, 15 byte

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

(Kontrol karakter diganti dengan \x06dan \x11untuk kenyamanan menonton Anda.)

Cobalah online

Bagaimana itu bekerja

   "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
sumber
4

05AB1E , 14 byte

Kedua solusi menghasilkan daftar [3,17,18,19,7,1,11,16,2,5,6,9,12,4,8,14,10,13,15]

19Lœ•δn2мׄÁ•è

Menghasilkan daftar semua permutasi (diurutkan) dari rentang [1...19]dan indeks ke dalam daftar itu dengan basis 255 nomor basis 10 terkompresi.

Atau 15 byte runnable online

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

Mengekompresi string 255 basis ke nomor basis 10 dan mengkonversi ke daftar basis 20 digit.

Cobalah online!

Emigna
sumber
3

SOGL , 15 byte

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

Penjelasan:

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

Jelly , 21 byte

18473955480703453œ?19

Saya benar-benar ingin mengompres angka besar itu, tetapi saya tidak yakin bagaimana caranya.

Cobalah online!

Okx
sumber
18473955480703453lebih pendek 1 byte.
Emigna
Perbaiki saya jika saya salah, tetapi bukankah daftar indeks halaman kode lebih pendek?
Nick Clifford
Kompresi RE: Ini nomor yang sama yang saya gunakan di tambang. Yang harus Anda lakukan adalah mengonversi angka menjadi basis bijective 250 menggunakan ḃ250dan mengindeks ke halaman kode (yang sekarang lebih mudah karena ada atom niladic untuk itu, ØJ).
Jonathan Allan
@NickClifford akan 21 byte juga (19 indeks, kutipan terbuka dan kutipan dekat).
Jonathan Allan
@ Jonathan Allan Ah, mengerti.
Nick Clifford
2

APL, 24 byte

⎕A⍳'RQCKAGSIFEBPNHDLOMJ'

Cobalah online!

Bagaimana?

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

JavaScript (ES6), 49 byte

[...'ih3b17j9652ge84cfda'].map(n=>parseInt(n,26))

Darrylyeo
sumber
0

Mathematica, 37 byte

36^^md1o3apsqxqkfhq6~IntegerDigits~20

Penjelasan (yang mungkin sudah jelas karena Mathematica bukan bahasa codegolf, tetapi sesuai dengan persyaratan 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

Keluaran:

{18,17,3,11,1,7,19,9,6,5,2,16,14,8,4,12,15,13,10}
pengguna202729
sumber
1
Perhatikan bahwa kolmogorv-complex sebenarnya adalah tentang kompresi data.
flawr
0

Japt , 27 byte

Terinspirasi oleh solusi rahnema1.

`ikrnfaqogcmdbsjlp`¨c -96

Cobalah online

Shaggy
sumber