GÖREV
TANIMLAR
{1,2,3,4,5} noktalarını ve bunların tüm permütasyonlarını düşünün. Bu 5 noktanın toplam olası permütasyon sayısını basit bir numarayla bulabiliriz: 5 yuvayı bu noktalarla doldurarak görüntüleme, ilk yuva 5 olası sayıya, ikinci 4'e (biri ilk yuvayı doldurmak için kullanıldığından) üçüncü 3 vb. Böylece toplam Permütasyon sayısı 5 * 4 * 3 * 2 * 1'dir; bu 5 olurdu! permütasyon veya 120 permütasyon. Bunu simetrik S5 grubu olarak düşünebiliriz ve sonra Simetrik Grup Sn n! or (n*n-1*n-2...*1)permütasyonlara sahip olur .
"Eşit" permütasyon, eşit sayıda çift uzunluk döngüsü olan bir permütasyondur. Bu, örneğin, siklik şeklinde yazılır zaman anlamak kolay olan (1 2 3)(4 5)permütasyon kodunun değiştirilmesini içerir 1->2->3->1ve 4->5->4ve bir 3 uzunlukta döngüsüne sahiptir (1 2 3)ve bir 2 uzunlukta döngüsü (4 5). Bir permütasyonu tek veya çift olarak sınıflandırırken, tek uzunluk döngülerini yok sayarız ve bu permütasyonun [ (1 2 3)(4 5)], tek uzunluk döngülerinin tek bir {1} sayısına sahip olduğu için garip olduğunu söyleriz . Hatta örnekler:
(1)(2 3)(4 5)= iki 2 uzunluk döngüsü | EVEN |(1 2 3 4 5)= eşit uzunluk döngüsü yok | EVEN | * çift uzunluk döngüsü yoksa, permütasyonun çift olduğunu unutmayın.
Tek Örnekler:
(1 2)(3 4 5)= bir 2 uzunluk döngüsü | ODD |(1)(2 3 4 5)= bir 4 uzunluk döngüsü | ODD |
Herhangi bir Simetrik Gruptaki permütasyonların tam yarısı olduğu için çift gruba bile Alternatif Grup N diyebiliriz, S5 = 120 A5 = 60 permütasyon olarak.
NOTASYONU
Permütasyonlar, bunun için en azından, her bir döngünün farklı parantez içinde olduğu ve her bir döngünün artan sırada olduğu döngüsel gösterimde yazılmalıdır. Örneğin (1 2 3 4 5)değil (3 4 5 1 2). Ve tek bir sayıya sahip olan döngüler için, örneğin: (1)(2 3 4)(5)tek / sabit noktaların anlamı hariç tutulabilir (1)(2 3 4)(5) = (2 3 4). Ancak kimlik (tüm noktaların sabit olduğu nokta), onu temsil edecek (1)(2)(3)(4)(5)şekilde yazılmalıdır ().
MEYDAN OKUMA
Mümkün olan en az kodda, herhangi bir pozitif tamsayıyı {1,2,3,4 ...} girişi olarak almanızı ve Alternatif Grup Anının tüm permütasyonlarını görüntülemenizi istiyorum, burada n, giriş / tüm Sn permütasyonları. Örneğin:
Input = 3
()
(1 2 3)
(1 3 2)
ve
Input = 4
()
(1 2)(3 4)
(1 3)(2 4)
(1 4)(2 3)
(1 2 3)
(1 3 2)
(1 2 4)
(1 4 2)
(1 3 4)
(1 4 3)
(2 3 4)
(2 4 3)
Ve örneklerde olduğu gibi, bir uzunluktaki tüm döngülerin elenmesini ve kimliğe gelmesini istiyorum: hiçbir şeyin çıktıları , (){sadece parantezler değil, farklı permütasyonlar göstermek için kullandığınız her şeyle} veya idkabul edilebilir.
EKSTRA OKUMA
Daha fazla bilgiyi burada bulabilirsiniz:
İYİ ŞANSLAR
Ve bu Codegolf olduğundan, Alternatif Grup An'ın permütasyonlarını en kısa baytta basabilen herkes kazanır.
(2 3 1 4)artan düzende nasıl koyabilirim ? Yani en küçük elementi öne koymalıyız?
(2 3 1 4)vermez 2->3->1->4->2o yazılabilir (1 4 2 3)ilk olarak en küçük elemanı ile
[[1, 2], [3, 4]]Bunun yerine örneğin çıktı almasına izin veriliyor(1 2)(3 4)mu?