Viết chương trình, xác định xem bảng nhân của magma hữu hạn đã cho có đại diện cho một nhóm hay không. Một magma là một tập hợp với một hoạt động nhị phân được đóng lại, có nghĩa là
- với tất cả a, b trong G, a * b lại xuất hiện trong G (Độ kín)
Đặt (G, *) là một magma. (G, *) là một nhóm nếu
- với mọi a, b, c trong G, (a * b) * c = a * (b * c) (Associativity)
- tồn tại một phần tử e trong G sao cho e * a = a * e = a cho tất cả a trong G (Sự tồn tại của phần tử trung tính)
- với tất cả a trong G có ab trong G sao cho a * b = b * a = e trong đó e là phần tử trung tính (Tồn tại nghịch đảo)
Thông số kỹ thuật
Đầu vào là một chuỗi gồm n ^ 2-1 ký tự (một ký tự cho mỗi phần tử của magma, được phép là 0-9, az) và chỉ đại diện cho bảng đọc từng hàng, bao gồm tên toán tử. Bạn có thể giả sử rằng đầu vào đại diện cho một magma hợp lệ (có nghĩa là mỗi phần tử xuất hiện chính xác một lần trong hàng tiêu đề / cột màu).
Ví dụ: Ở đây chúng tôi có bảng 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
Chuỗi đầu vào sẽ là 012300123112302230133012
. (Hoặc nếu chúng ta sử dụng các ký hiệu thì nó cũng có thể nezdnnezdeezdnzzdneddnez
). Xin lưu ý rằng chuỗi các phần tử trong hàng và trong cột không nhất thiết phải giống nhau, vì vậy bảng của Z_4 cũng có thể trông giống như vậy:
+ | 1 3 2 0
-----------
1 | 2 0 3 1
0 | 1 3 2 0
2 | 3 1 0 2
3 | 0 2 1 3
Điều này cũng có nghĩa là phần tử trung tính không nhất thiết phải ở cột đầu tiên hoặc hàng đầu tiên.
Nếu là một nhóm, chương trình phải trả về ký tự đại diện cho phần tử trung tính. Nếu không, nó phải trả về giá trị giả (khác với giá trị 0-9 az)
Các trường hợp thử nghiệm
Các nhóm không có thể dễ dàng được xây dựng chỉ bằng cách thay đổi một chữ số của chuỗi hoặc bằng cách thay đổi một cách giả tạo các bảng xác định một hoạt động mâu thuẫn với một trong các tiên đề của nhóm.
Các nhóm
Không đáng kể
* | x
-----
x | x
xxx
Neutral Element: x
H (nhóm bậc bốn)
* | 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
Không nhóm
Một vòng lặp (Nhóm thiếu tính kết hợp hoặc Nhóm Quasi với phần tử trung tính)
* | 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)
Vòng lặp IP (từ http://www.quasigroups.eu/contents/doad/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 (bởi Quincunx, cảm ơn!)
Đơn sắc là Magmas với tính kết hợp và một yếu tố trung tính.
* | 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
Một Monoid khác
(Phép nhân mod 10, không có 5) Rõ ràng chúng ta không có nghịch đảo và tính kết hợp được đưa ra bởi phép nhân 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
0-9a-z
quy tắc: ideone.com/vC0ewt
10101010
thứ tự là như nhau và trung tính ở hàng và cột cuối cùng