Ayrık döngü biçiminde iki permütasyon göz önüne alındığında , ürün / bileşimini ayrık döngü biçiminde çıktılar.
Kompozisyonu bulmak için, ayrık döngüleri iki satırlı gösterimdeki permütasyonlara dönüştürün. Bir döngünün ayrık bölümündeki her sayı, aynı bölümden sonraki sayı ile eşlenir. Etrafı sarar. Yani 1 -> 5
, 5 -> 1
, 2 -> 4
, 4 -> 2
. Bir sayı bulunamazsa, 3 -> 3
kendisine eşlenir. İlk ayrık döngü de yazılabilir (1 5)(2 4)(3)
. Bu eşlemeler iki satıra dönüştürülür, örneğin ( P ve Q sırasının tersine çevrildiğine dikkat edin):
[Perm] iki permütasyon ürünü, ikinci (en soldaki) permütasyon kolonlarını yeniden düzenleyerek elde edilir, böylece ilk sırası, ilk (en sağdaki) permütasyonun ikinci satırı ile aynı olur. Ürün daha sonra değiştirilmiş ikinci permütasyonun ikinci satırı üzerine birinci permütasyonun ilk satırı olarak yazılabilir.
Kurallar:
- Girdi, liste listesi veya benzer bir biçim olarak verilecektir
- Sen olabilir değil gibi bir şey almak
(1 5)(2 4)
olarak[5, 4, 3, 2, 1]
çift hatlı şeklinde zaten (değere eşleme endeksi) - Tüm sayılar olsun diye, her grupta meydana zorunda
(1 5)·(1 2)
sonuçlanan(2 5 1)
. - Çıktınız girdiniz olarak kullanılabilmelidir.
- Boş bir döngü ile girişi desteklemenize gerek yoktur
(1 5)·()
. Bunun yerine bu şekilde(1 5)·(1)
veya eşdeğeri bir şey verilir . - Döngüler sarıldığından, sonuç doğru olduğu sürece sipariş önemli değildir.
- Sıfır veya bir ile başlayabilirsiniz. Önemli değil, çünkü sonuçlar aynı.
- Sayılar daha büyük olabilir
9
. - Çıktıya aynı sayıyı bir defadan fazla dahil edemezsiniz. Yani
[[1],[1]]
izin verilmiyor. - Bu işlemin değişmeli olmadığını unutmayın ! Q'yu P'nin önüne koydum, çünkü Wikipedia bunu yaptı. Herhangi bir siparişi seçebilirsiniz, ancak hangisi farklıysa belirtin.
- En kısa kod kazanır
- Yerleşiklere izin verilir, ancak bir tane kullanırsanız, kullanmadan da bir çözüm gösterin.
Örnekler:
Eşdeğer çıktı olasılıklarının tümü gösterilmemiştir
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]]