เขียนโปรแกรมที่กำหนดว่าตารางการคูณของแมกมาไฟต์ที่กำหนดนั้นแสดงถึงกลุ่มหรือไม่ magma เป็นชุดที่มีการดำเนินการแบบไบนารีที่ปิดนั่นหมายความว่า
- สำหรับทั้งหมด a, b ใน G, a * b กลับเป็น g (ปิด) อีกครั้ง
ให้ (G, *) เป็นแมกมา (G, *) เป็นกลุ่มถ้า
- สำหรับ a, b, c ใน G, (a * b) * c = a * (b * c) (ความเกี่ยวข้อง)
- มีองค์ประกอบ e ใน G เช่นนั้น e * a = a * e = a สำหรับ a ทั้งหมดใน G (การดำรงอยู่ขององค์ประกอบที่เป็นกลาง)
- สำหรับ a ทั้งหมดใน G จะมี ab ใน G เช่นนั้น a * b = b * a = e โดยที่ e คือองค์ประกอบที่เป็นกลาง (การดำรงอยู่ของ Inverse)
รายละเอียด
อินพุตเป็นสตริงของ n ^ 2-1 อักขระ (หนึ่งอักขระสำหรับแต่ละองค์ประกอบของ magma ที่อนุญาตคือ 0-9, az) และแสดงถึงการอ่านตารางทีละแถวโดยสรุปชื่อโอเปอเรเตอร์ คุณสามารถสันนิษฐานได้ว่าการป้อนข้อมูลหมายถึงแมกมาที่ถูกต้อง (นั่นหมายถึงองค์ประกอบแต่ละรายการจะต้องตรงกันหนึ่งครั้งในแถวส่วนหัว / โคลัม)
ตัวอย่าง: ที่นี่เรามีตาราง Z_4
+ | 0 1 2 3
-----------
0 | 0 1 2 3
1 | 1 2 3 0
2 | 2 3 0 1
3 | 3 0 1 2
012300123112302230133012
สายป้อนจะ (หรือถ้าเราใช้สัญลักษณ์ก็อาจเป็นได้nezdnnezdeezdnzzdneddnez
) โปรดทราบว่าลำดับขององค์ประกอบในแถวและคอลัมน์ไม่จำเป็นต้องเหมือนกันดังนั้นตาราง Z_4 อาจมีลักษณะดังนี้:
+ | 1 3 2 0
-----------
1 | 2 0 3 1
0 | 1 3 2 0
2 | 3 1 0 2
3 | 0 2 1 3
นอกจากนี้ยังหมายความว่าองค์ประกอบที่เป็นกลางไม่จำเป็นต้องอยู่ในคอลัมน์แรกหรือแถวแรก
หากเป็นกลุ่มโปรแกรมจะต้องส่งคืนอักขระที่แสดงถึงองค์ประกอบที่เป็นกลาง หากไม่จำเป็นต้องส่งคืนค่าเท็จ (แตกต่างจากค่า 0-9 az)
กรณีทดสอบ
สามารถสร้างกลุ่มที่ไม่ใช่กลุ่มได้อย่างง่ายดายโดยเพียงแค่เปลี่ยนตัวเลขหนึ่งหลักของสตริงหรือโดยการเปลี่ยนตารางที่กำหนดการดำเนินการที่ขัดแย้งกับหนึ่งในกลุ่มสัจพจน์
กลุ่ม
จิ๊บจ๊อย
* | x
-----
x | x
xxx
Neutral Element: x
H (กลุ่ม quaternion)
* | p t d k g b n m
-------------------
m | b d t g k p m n
p | m k g d t n p b
n | p t d k g b n m
b | n g k t d m b p
t | g m n p b k t d
d | k n m b p g d t
k | t b p m n d k g
g | d p b n m t g k
ptdkgbnmmbdtgkpmnpmkgdtnpbnptdkgbnmbngktdmbptgmnpbktddknmbpgdtktbpmndkggdpbnmtgk
Neutral Element: n
D_4
* | y r s t u v w x
-------------------
u | u x w v y t s r
v | v u x w r y t s
w | w v u x s r y t
x | x w v u t s r y
y | y r s t u v w x
r | r s t y v w x u
s | s t y r w x u v
t | t y r s x u v w
yrstuvwxuuxwvytsrvvuxwrytswwvuxsrytxxwvutsryyyrstuvwxrrstyvwxusstyrwxuvttyrsxuvw
Neutral Element: y
Z_6 x Z_2
x | 0 1 2 3 5 7 8 9 a b 4 6
---------------------------
0 | 0 1 2 3 5 7 8 9 a b 4 6
1 | 1 2 3 4 0 8 9 a b 6 5 7
2 | 2 3 4 5 1 9 a b 6 7 0 8
7 | 7 8 9 a 6 2 3 4 5 0 b 1
8 | 8 9 a b 7 3 4 5 0 1 6 2
9 | 9 a b 6 8 4 5 0 1 2 7 3
a | a b 6 7 9 5 0 1 2 3 8 4
b | b 6 7 8 a 0 1 2 3 4 9 5
3 | 3 4 5 0 2 a b 6 7 8 1 9
4 | 4 5 0 1 3 b 6 7 8 9 2 a
5 | 5 0 1 2 4 6 7 8 9 a 3 b
6 | 6 7 8 9 b 1 2 3 4 5 a 0
01235789ab46001235789ab4611234089ab6572234519ab67087789a623450b1889ab7345016299ab684501273aab6795012384bb678a0123495334502ab67819445013b67892a5501246789a3b66789b12345a0
Neutral Element: 0
A_4
* | i a b c d e f g h j k l
---------------------------
i | i a b c d e f g h j k l
a | a b i e c d g h f l j k
b | b i a d e c h f g k l j
c | c f j i g k a d l b e h
d | d h k b f l i e j a c g
e | e g l a h j b c k i d f
f | f j c k i g d l a h b e
g | g l e j a h c k b f i d
h | h k d l b f e j i g a c
j | j c f g k i l a d e h b
k | k d h f l b j i e c g a
l | l e g h j a k b c d f i
iabcdefghjkliiabcdefghjklaabiecdghfljkbbiadechfgkljccfjigkadlbehddhkbfliejacgeeglahjbckidfffjckigdlahbegglejahckbfidhhkdlbfejigacjjcfgkiladehbkkdhflbjiecgalleghjakbcdfi
Neutral Element: i
ที่ไม่ใช่กลุ่ม
ลูป (การเชื่อมโยงกลุ่มที่ขาดหายไปหรือกลุ่มเสมือนที่มีองค์ประกอบเป็นกลาง)
* | 1 2 3 4 5
-------------
1 | 1 2 3 4 5
2 | 2 4 1 5 3
3 | 3 5 4 2 1
4 | 4 1 5 3 2
5 | 5 3 2 1 4
12345112345224153335421441532553214
Neutral Element: 1
(2*2)*3 = 4*3 = 5 != 2 = 2*1 = 2*(2*3)
IP-loop (จากhttp://www.quasigroups.eu/contents/download/2008/16_2.pdf )
* | 1 2 3 4 5 6 7
-----------------
1 | 1 2 3 4 5 6 7
2 | 2 3 1 6 7 5 4
3 | 3 1 2 7 6 4 5
4 | 4 7 6 5 1 2 3
5 | 5 6 7 1 4 3 2
6 | 6 4 5 3 2 7 1
7 | 7 5 4 2 3 1 6
123456711234567223167543312764544765123556714326645327177542316
Neutral Element: 1
2*(2*4) = 2*6 = 5 != 7 = 3*4 = (2*2)*4
Monoid (โดย Quincunx ขอบคุณ!)
Monoids เป็น Magmas ที่มีความสัมพันธ์และองค์ประกอบที่เป็นกลาง
* | 0 1 2 3
-----------
0 | 0 1 2 3
1 | 1 3 1 3
2 | 2 1 0 3
3 | 3 3 3 3
012300123113132210333333
Neutral Element: 0
อีก Monoid
(การคูณ mod 10 โดยไม่มี 5) เราไม่มี inverses และการเชื่อมโยงนั้นได้รับจากการคูณ modulo 10
* | 1 2 3 4 6 7 8 9
-------------------
1 | 1 2 3 4 6 7 8 9
2 | 2 4 6 8 2 4 6 8
3 | 3 6 9 2 8 1 4 7
4 | 4 8 2 6 4 8 2 6
6 | 6 2 8 4 6 2 8 4
7 | 7 4 1 8 2 9 6 3
8 | 8 6 4 2 8 6 4 2
9 | 9 8 7 6 4 3 2 1
Neutral Element: 1 12346789112346789224682468336928147448264826662846284774182963886428642998764321
10101010
ที่ลำดับนั้นเหมือนกันและเป็นกลางอยู่ในแถวและคอลัมน์สุดท้าย