Note de curs, probleme algoritmică, 21 octombrie 2013
În acest curs am discutat despre problema 1024 - Permutations.
Cerința
Dându-se o permutare, să se calculeze ordinul acesteia (notat k), definit astfel: k minim, astfel încât Pk = permutarea identitate.
Soluția
(1) Se determină toate ciclurile elementare ale permutării date.
(2) Notând cu l1, l2, ..., ln lungimile tuturor ciclurilor elementare se calculează k = CMMMC(l1, l2, ..., ln).
Explicația intuitivă a soluției
Dacă permutarea dată se reduce la un singur ciclu elementar, atunci k = lungimea permutării.
P^0 = (1 2 3 4) P^1 = (4 3 1 2) P^2 = (2 1 4 3) P^3 = (3 4 2 1) P^4 = (1 2 3 4)
Dacă permutarea dată se reduce la mai multe cicluri elementare (cu lungimile l1, l2, ..., ln), atunci fiecare din acestea coincid cu permutarea identică după aplicarea permutării de un multiplu de l1 ori, de l2 ori, ... respectiv de ln ori.
Astfel, calculând cel mai mic multiplu comun al tuturor lungimilor, obținem k.