Introducción
Puede omitir esta parte si ya sabe qué es un grupo cíclico.
Un grupo se define por un conjunto y una operación binaria asociativa $
(es decir, (a $ b) $ c = a $ (b $ c)
existe exactamente un elemento en el grupo e
donde a $ e = a = e $ a
para todos a
en el grupo ( identidad ). Para cada elemento a
en el grupo existe exactamente uno b
tal que a $ b = e = b $ a
( inverso ) Por cada dos elementos a, b
en el grupo, a $ b
está en el grupo ( cierre ).
Podemos escribir a^n
en lugar de a$a$a$...$a
.
El subgrupo cíclico generado por cualquier elemento a
en el grupo es <a> = {e, a, a^2, a^3, a^4, ..., a^(n-1)}
donde n
está el orden (tamaño) del subgrupo (a menos que el subgrupo sea infinito).
Un grupo es cíclico si puede ser generado por uno de sus elementos.
Reto
Dada la tabla de Cayley (tabla de productos) para un grupo finito, determine si es o no cíclico.
Ejemplo
Echemos un vistazo a la siguiente tabla de Cayley:
1 2 3 4 5 6
2 3 1 6 4 5
3 1 2 5 6 4
4 5 6 1 2 3
5 6 4 3 1 2
6 4 5 2 3 1
(Esta es la tabla de Cayley para el Grupo Diédrico 3, D_3).
Esto está indexado en 1, así que si queremos encontrar el valor de 5 $ 3
, miramos en la quinta columna en la tercera fila (tenga en cuenta que el operador no es necesariamente conmutativo, por 5 $ 3
lo que no es necesariamente igual a 3 $ 5
. Vemos aquí eso 5 $ 3 = 6
(también que 3 $ 5 = 4
)
Podemos encontrar <3>
comenzando con [3]
, y luego, mientras la lista es única, agregue el producto del último elemento y el generador (3). Nosotros conseguimos [3, 3 $ 3 = 2, 2 $ 3 = 1, 1 $ 3 = 3]
. Nos detenemos aquí con el subgrupo {3, 2, 1}
.
Si calcula <1>
a través <6>
verá que ninguno de los elementos del grupo de generar todo el grupo. Por lo tanto, este grupo no es cíclico.
Casos de prueba
La entrada se dará como una matriz, la salida como un valor de decisión verdadero / falso.
[[1,2,3,4,5,6],[2,3,1,6,4,5],[3,1,2,5,6,4],[4,5,6,1,2,3],[5,6,4,3,1,2],[6,4,5,2,3,1]] -> False (D_3)
[[1]] -> True ({e})
[[1,2,3,4],[2,3,4,1],[3,4,1,2],[4,1,2,3]] -> True ({1, i, -1, -i})
[[3,2,4,1],[2,4,1,3],[4,1,3,2],[1,3,2,4]] -> True ({-1, i, -i, 1})
[[1,2],[2,1]] -> True ({e, a} with a^-1=a)
[[1,2,3,4,5,6,7,8],[2,3,4,1,6,7,8,5],[3,4,1,2,7,8,5,6],[4,1,2,3,8,5,6,7],[5,8,7,6,1,4,3,2],[6,5,8,7,2,1,4,3],[7,6,5,8,3,2,1,4],[8,7,6,5,4,3,2,1]] -> False (D_4)
[[1,2,3,4,5,6],[2,1,4,3,6,5],[3,4,5,6,1,2],[4,3,6,5,2,1],[5,6,1,2,3,4],[6,5,2,1,4,3]] -> True (product of cyclic subgroups of order 2 and 3, thanks to Zgarb)
[[1,2,3,4],[2,1,4,3],[3,4,1,2],[4,3,1,2]] -> False (Abelian but not cyclic; thanks to xnor)
Se le garantizará que la entrada sea siempre un grupo.
Puede tomar la entrada como valores indexados a 0.
[1..n]
que puede estar ocultando fallas en algunas respuestas.
[[0,1,2,3],[1,2,3,0],[2,3,0,1],[3,0,1,2]]
)?