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.


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]

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]

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!


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 

3

Jelly , 21 byte

18473955480703453œ?19

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

Cobalah online!


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


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}

1
Perhatikan bahwa kolmogorv-complex sebenarnya adalah tentang kompresi data.
flawr

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.