Schreiben Sie ein Programm, das festlegt, ob die Multiplikationstabelle des gegebenen endlichen Magmas eine Gruppe darstellt. Ein Magma ist eine Menge mit einer geschlossenen binären Operation, das heißt
- für alle a, b in G ist a * b wieder in G (Geschlossenheit)
Sei (G, *) ein Magma. (G, *) ist eine Gruppe, wenn
- für alle a, b, c in G (a * b) * c = a * (b * c) (Assoziativität)
- es existiert ein Element e in G, so dass e * a = a * e = a für alle a in G (Existenz eines neutralen Elements)
- für alle a in G gibt es ab in G, so dass a * b = b * a = e wobei e das neutrale Element ist (Existenz von Inverse)
Technische Daten
Die Eingabe besteht aus einer Zeichenfolge von n ^ 2-1 Zeichen (ein Zeichen für jedes Element des Magmas, zulässig sind 0-9, az) und stellt nur die zeilenweise gelesene Tabelle dar, wobei der Name des Operators weggelassen wird. Sie können davon ausgehen, dass die Eingabe ein gültiges Magma darstellt (dh, jedes der Elemente wird genau einmal in der Kopfzeile / -spalte eingefügt).
Beispiel: Hier haben wir die Tabelle von 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
Die Eingabezeichenfolge lautet 012300123112302230133012
. (Oder wenn wir Symbole verwenden, könnte es auch sein nezdnnezdeezdnzzdneddnez
). Beachten Sie, dass die Reihenfolge der Elemente in der Zeile und in der Spalte nicht identisch sein muss, sodass die Tabelle von Z_4 auch so aussehen kann:
+ | 1 3 2 0
-----------
1 | 2 0 3 1
0 | 1 3 2 0
2 | 3 1 0 2
3 | 0 2 1 3
Dies bedeutet auch, dass sich das neutrale Element nicht unbedingt in der ersten Spalte oder ersten Zeile befindet.
Wenn es sich um eine Gruppe handelt, muss das Programm das Zeichen zurückgeben, das das neutrale Element darstellt. Wenn nicht, muss ein falscher (von den Werten 0-9 az verschiedener) Wert zurückgegeben werden
Testfälle
Nicht-Gruppen können leicht konstruiert werden, indem nur eine Ziffer der Zeichenfolge geändert wird oder indem die Tabellen, die eine Operation definieren, die einem der Gruppenaxiome widerspricht, künstlich geändert werden.
Gruppen
Trivial
* | x
-----
x | x
xxx
Neutral Element: x
H (Quaternionsgruppe)
* | 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
Nicht-Gruppen
Eine Schleife (Gruppe ohne Assoziativität oder eine Quasi-Gruppe mit neutralem Element)
* | 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)
Eine IP-Schleife (von 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 (von Quincunx, danke!)
Monoide sind assoziative Magmen und ein neutrales Element.
* | 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
Ein weiteres Monoid
(Multiplikation mod 10, ohne die 5) Wir haben offensichtlich keine Inversen, und die Assoziativität ist durch das Multiplikationsmodul 10 gegeben.
* | 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
Regel bricht : ideone.com/vC0ewt
10101010