Loop adalah struktur aljabar yang cukup sederhana. Ini adalah tuple (G, +) di mana G adalah satu set dan + adalah operator biner G × G → G . Yaitu + mengambil dua elemen dari G dan mengembalikan elemen baru. Operator juga harus memenuhi dua properti
Pembatalan: Untuk setiap a dan b di G terdapat unik x dan y di G sedemikian rupa
a + x = b y + a = b
Identitas: Ada e dalam G sedemikian rupa sehingga untuk setiap a dalam G
e + a = a a + e = a
Jika Anda terbiasa dengan konsep grup, Anda mungkin memperhatikan bahwa loop hanyalah grup yang tidak memiliki properti asosiatif.
Loop sangat sederhana sehingga orang ingin menambahkan lebih banyak aturan untuk membuat struktur baru yang lebih menarik. Salah satu struktur tersebut adalah loop Moufang yang merupakan loop yang juga memenuhi empat identitas berikut untuk semua x , y dan z dalam G
z + (x + (z + y)) = ((z + x) + z) + y
((y + z) + x) + z = y + (z + (x + z))
(z + x) + (y + z) = (z + (x + y)) + z
(z + x) + (y + z) = z + ((x + y) + z)
Sebagai contoh, tabel Cayley berikut mewakili loop Moufang:
0 1 2 3
1 0 3 2
2 3 0 1
3 2 1 0
(Jika Anda tidak terbiasa tabel Cayley adalah matriks persegi M di mana M i, j sama dengan i + j . Ini adalah cara praktis untuk mewakili operator biner pada suatu set.)
Kita dapat menunjukkan bahwa ada identitas dengan mudahnya 0
. Pembatalan agak sulit untuk ditunjukkan tetapi pendekatan brute force menghasilkan tabel ini
b a → 0 1 2 3
↓
0 0 1 2 3
1 1 0 3 2
2 2 3 0 1
3 3 2 1 0
Di mana elemen kami adalah solusi untuk
a + x = b = x + a
(Anda mungkin memperhatikan bahwa tabel ini identik dengan tabel Cayley kami. Saya akan membiarkannya sebagai latihan bagi pembaca untuk mencari tahu mengapa ini terjadi pada loop Moufang ini)
Sekarang kita perlu memverifikasi identitas Moufang untuk struktur kita. Ada dua cara untuk melakukan ini untuk struktur tertentu cara pertama adalah untuk menyadari bahwa itu asosiatif dan dengan demikian secara otomatis memenuhi kriteria, namun ini tidak akan berfungsi secara umum sehingga kami lebih suka dengan kasar memaksakan hasilnya. Ada 3 variabel bebas masing-masing dengan potensi 4 nilai di setiap ekspresi di sini. Ini berarti kita harus melakukan perhitungan 7 * 4 3 atau 448. Saya akan meninggalkan perhitungan mentah, tetapi di sini ada beberapa Haskell yang dapat Anda gunakan untuk memverifikasi ini .
Tugas
Diberikan bilangan bulat positif n sebagai input output jumlah loop Moufang yang memiliki urutan n . (urutan grup adalah ukuran set)
Ini adalah kode-golf sehingga jawaban akan dicetak dalam byte dengan lebih sedikit byte yang lebih baik.
Uji kasus
Berikut adalah jumlah loop Moufang untuk 71 input pertama
1,1,1,2,1,2,1,5,2,2,1,6,1,2,1,19,1,5,1,6,2,2,1,20,2,2,5,5,1,4,1,122,1,2,1,18,1,2,2,19,1,7,1,5,2,2,1,103,2,5,1,6,1,17,2,17,2,2,1,18,1,2,4,4529,1,4,1,6,1,4,1
12
tidak 11
. Aku seharusnya menyadari itu karena 11
bilangan prima.