Definisi
Anda dapat melewati bagian ini jika Anda sudah tahu definisi grup , grup hingga , dan subkelompok .
Grup
Dalam aljabar abstrak, grup adalah tupel (G, ∗) , di mana G adalah himpunan dan ∗ adalah fungsi G × G → G sedemikian rupa sehingga berlaku sebagai berikut:
Penutupan: untuk semua x, y dalam G , x ∗ y juga dalam G (tersirat oleh fakta bahwa ∗ adalah fungsi G × G → G ).
Asosiatif: untuk semua x, y, z dalam G , (x ∗ y) ∗ z = x ∗ (y ∗ z) .
Identitas: ada elemen e dalam G sedemikian sehingga untuk semua x dalam G , x ∗ e = x = e ∗ x .
Inverse: untuk setiap x dalam G , terdapat elemen y dalam G sedemikian sehingga x ∗ y = e = y ∗ x , di mana e adalah elemen identitas yang disebutkan dalam poin-poin sebelumnya.
Kelompok terbatas
Sebuah grup terbatas adalah kelompok (G, *) di mana G adalah terbatas, yaitu memiliki finitely banyak elemen.
Subkelompok
Sebuah subkelompok (H, *) dari kelompok (G, *) adalah seperti yang H adalah bagian dari G (bagian tidak selalu tepat) dan (H, *) juga kelompok (yaitu memenuhi 4 kriteria di atas).
Contohnya
Pertimbangkan kelompok dihedral D 3 (G, ∗) di mana G = {1, A, B, C, D, E} dan ∗ didefinisikan di bawah ini (tabel seperti ini disebut tabel Cayley ):
∗ | 1 ABCDE - + ---------------------- 1 | 1 ABCDE A | AB 1 Des B | B 1 AECD C | CED 1 BA D | DCEA 1 B E | EDCBA 1
Dalam grup ini, identitasnya adalah 1 . Juga, A dan B adalah invers satu sama lain, sementara 1 , C , D , dan E adalah inversnya masing-masing (kebalikan dari 1 adalah 1 , kebalikan dari C adalah C , kebalikan dari D adalah D , dan kebalikan dari E adalah E ).
Sekarang, kita dapat memverifikasi bahwa (H, ∗) di mana H = {1, A, B} adalah subkelompok dari (G, ∗) . Untuk penutupan, lihat tabel di bawah ini:
∗ | 1 AB - + ---------- 1 | 1 AB A | AB 1 B | B 1 A
di mana semua pasangan yang mungkin dari unsur-unsur di H bawah * memberikan anggota di H .
Associativity tidak memerlukan memeriksa, karena unsur H adalah elemen dari G .
Identitasnya adalah 1 . Ini harus sama dengan identitas grup. Selain itu, identitas dalam grup harus unik. (Bisakah Anda membuktikan ini?)
Untuk terbalik, periksa bahwa kebalikan dari A adalah B , yang merupakan anggota dari H . Kebalikan dari B adalah A , yang juga anggota dari H . Kebalikan dari 1 masih sendiri, yang tidak perlu diperiksa.
Tugas
Deskripsi
Diberi grup terbatas (G, ∗) , cari jumlah subkelompoknya.
Memasukkan
Untuk grup (G, ∗) , Anda akan menerima array 2D ukuran n × n , di mana n adalah jumlah elemen dalam G . Asumsikan bahwa indeks 0
adalah elemen identitas. Array 2D akan mewakili tabel perkalian. Misalnya, untuk grup di atas, Anda akan menerima array 2D berikut:
[[0, 1, 2, 3, 4, 5],
[1, 2, 0, 4, 5, 3],
[2, 0, 1, 5, 3, 4],
[3, 5, 4, 0, 2, 1],
[4, 3, 5, 1, 0, 2],
[5, 4, 3, 2, 1, 0]]
Misalnya, Anda dapat melihat bahwa 3 ∗ 1 = 5 karena a[3][1] = 5
, di mana a
larik 2D di atas.
Catatan:
- Anda dapat menggunakan array 2D 1-diindeks.
- Baris dan kolom untuk identitas dapat dihilangkan.
- Anda dapat menggunakan format lain sesuai keinginan Anda, tetapi itu harus konsisten. (mis. Anda mungkin menginginkan indeks terakhir sebagai identitas, dll.)
Keluaran
Angka positif yang mewakili jumlah subkelompok dalam grup.
Misalnya, untuk grup di atas, (H, ∗) adalah subkelompok dari (G, ∗) setiap kali H =
- {1}
- {1, A, B}
- {1, C}
- {1, D}
- {1, E}
- {1, A, B, C, D, E}
Oleh karena itu, ada 6 subkelompok, dan output Anda untuk contoh ini seharusnya 6
.
Petunjuk
Anda dapat membaca artikel yang saya tautkan. Artikel-artikel tersebut berisi teorema tentang grup dan subkelompok yang mungkin berguna bagi Anda.
Mencetak gol
Ini adalah kode-golf . Jawab dengan kemenangan byte terendah.
sumber
0
elemen identitas, maka membingungkan memiliki operator yang dideskripsikan sebagai multiplikasi ...Jawaban:
Mathematica,
6248 byteFungsi murni mengharapkan array 2D 1-diindeks.
Count
s jumlahSubsets
dariFirst
baris dari array masukan yang tertutup di bawah operasi kelompok. Karena ini akan termasuk set kosong, kami kurangi1
. Perhatikan bahwa subset kosong dari grup hingga yang ditutup di bawah operasi grup sebenarnya adalah subkelompok , (dan sebaliknya, menurut definisi).Sebenarnya saya tidak memeriksa bahwa himpunan bagian
x
ditutup di bawah operasi grup, saya membatasi tabel perkalian untuk himpunan bagianx
dan memeriksa bahwa itu berisi elemen tepatx
. Jelas ini menyiratkan yangx
ditutup sehubungan dengan operasi grup. Sebaliknya, setiap subkelompokx
akan berisi1
dan dengan demikianx
akan menjadi bagian dari elemen yang muncul dalam tabel perkalian terbatas, dan karenax
ditutup di bawah operasi grup, itu harus samax
.sumber
Haskell , 79 byte
Pada dasarnya sebuah pelabuhan dari metode Mathematica ngenisis. (Kecuali saya menggunakan array 0-diindeks.)
c
mengambil daftar daftarInt
s dan mengembalikan bilangan bulat.Cobalah online!
Diasumsikan bahwa
Int
s diberi nomor yang sama dengan baris (daftar luar) dan kolom yang menunjukkan perkaliannya. Jadi, karena 0 adalah identitas, kolom pertama sama dengan indeks baris. Ini memungkinkan menggunakan entri dari kolom pertama untuk membangun himpunan bagian.Bagaimana itu bekerja
c
adalah fungsi utama.g
adalah array grup sebagai daftar daftar.l
adalah bagian dari elemen. Daftar himpunan bagian dibangun sebagai berikut:foldr(\r->([id,(r!!0:)]<*>))[[]]g
melipat fungsi di atas barisg
.r
adalah deretang
, elemen pertama (ke-0) diekstraksi sebagai elemen yang dapat disertakan ((r!!0:)
) atau tidak (id
).<*>
menggabungkan pilihan untuk baris ini dengan yang berikut.and[g!!x!!y`elem`l|x<-l,y<-l]
menguji untuk setiap pasangan elemenl
apakah kelipatannya adal
.sum[1|...]-1
menghitung himpunan bagian yang lulus tes, kecuali satu, bagian kosong.sumber
Jelly ,
1716 byte1 byte berkat ETHproductions (
LR → J
)Cobalah online! (1-diindeks)
sumber
J
alih - alihLR
menyimpan byte :-)Python 2,
297215 byteCobalah online
Program ini berfungsi untuk grup contoh tanpa
==T[x][y]
, tapi saya masih cukup yakin itu perlu.Sunting: Sekarang mengasumsikan bahwa elemen identitas G selalu yang pertama.
Tidak Disatukan:
TIO Tidak Dikunci
Elemen grup negatif dapat didukung tanpa biaya dengan mengubah
-1
ke''
.sumber
0
untuk contoh, bukan indeks.