Dadas dos permutaciones en forma de ciclo disjunto, envíe su producto / composición en forma de ciclo disjunto.
Para encontrar la composición, convierta los ciclos disjuntos en permutaciones en notación de dos líneas. Cada número en una parte disjunta de un ciclo se asigna al número que le sigue en la misma parte. Se envuelve. Así 1 -> 5
, 5 -> 1
, 2 -> 4
, 4 -> 2
. Si no se encuentra un número 3 -> 3
, se asigna a sí mismo. El primer ciclo disjunto también podría escribirse (1 5)(2 4)(3)
. Estas asignaciones se convierten en dos líneas, así (tenga en cuenta que el orden de P y Q se invierte):
[E] l producto de dos permutaciones se obtiene reorganizando las columnas de la segunda permutación (más a la izquierda) de modo que su primera fila sea idéntica a la segunda fila de la primera permutación (más a la derecha). El producto puede entonces escribirse como la primera fila de la primera permutación sobre la segunda fila de la segunda permutación modificada.
Reglas:
- La entrada se dará como una lista de listas o formato similar
- Es posible que no tome algo así
(1 5)(2 4)
como[5, 4, 3, 2, 1]
, ya en forma de dos líneas (asignación de índice a valor) - No todos los números tienen que aparecer en cada grupo, por lo que podría haber
(1 5)·(1 2)
resultado(2 5 1)
. - Su salida debe poder usarse como su entrada.
- No necesita admitir entradas con un ciclo vacío
(1 5)·()
. Eso se daría como(1 5)·(1)
algo equivalente. - Dado que los ciclos se ajustan, el orden no importa siempre que el resultado sea correcto.
- Puede comenzar en cero o uno. No importa, porque los resultados son los mismos.
- Los números pueden ser mayores que
9
. - No puede incluir el mismo número más de una vez en la salida. Entonces
[[1],[1]]
no está permitido. - ¡Tenga en cuenta que esta operación no es conmutativa ! Puse Q antes que P, porque eso es lo que hizo Wikipedia. Puede elegir cualquier orden, pero especifique cuál es diferente.
- El código más corto gana
- Los elementos integrados están permitidos, pero si usa uno, muestre una solución sin usarlo también.
Ejemplos:
No se muestran todas las posibilidades de salida equivalentes
Input
Output
[[1, 5], [2, 4]], [[1, 2, 4, 3]]
[[1, 4, 3, 5]] (or [[4, 3, 5, 1]] or ...)
[[1, 5]], [[1, 2]]
[[2, 5, 1]]
[[10, 2, 3]], [[2]]
[[3, 10, 2]]
[[1]], [[3]]
[[]] (or [[1]] or something equivalent)
[[10,2,3,15],[1,7],[5,6],[14,4,13,11,12]], [[5,6,7,9,14],[2,8,3,10],[1,11]]
[[12, 14, 6, 1], [8, 15, 10, 3, 2], [13, 11, 7, 9, 4]]
(arguments in reverse order from above gives a different answer)
[[5,6,7,9,14],[2,8,3,10],[1,11]], [[10,2,3,15],[1,7],[5,6],[14,4,13,11,12]]
[[9, 14, 4, 13, 1], [10, 8, 3, 15, 2], [7, 11, 12, 5]]