Belirli ayrıntıları yanlış hatırlamanız veya soruyu yanlış yorumlamanız mümkün mü?
Senin açıklamada, eleman pozisyon içinde sınırlıdır .
Ancak farkın kısıtlandığı anlamına geldiyse: ,
O zaman sorun izlenebilir görünüyor.b a - b ≠ ± M a - b ≠ Maba−b≠±M
a−b≠M
Bu daha basit problemi çözdüm ve daha büyük problemi çözmede biraz özgürlük vereceğini umduğum şekilde genelleştirmeye çalıştım. Ama bu benim için nihayet tartıştığım özyinelemeli bir yaklaşımın işe yarama olasılığının düşük olduğunu açıkladı.
İşlevi göz önünde 1 ila etiketli elemanlar bir liste permütasyon sayısını verir elemanı, pozisyon içinde tatmin (ilk konum 1) ve .f(N,M,P)Naba−b≠Mb−a≠P
Bunu görselleştirmek için, onu iki kısıtlamaya ayırmak ve bu kısıtlamaları ayrı olarak değiştirmesine izin verir .MP
1 2 3 4 5 M=0, restricted values for each position
. . . . . (positions in list)
1 2 3 4 5 P=0, restricted values for each position
3 4 5 M=2, restricted values for each position
. . . . . (positions in list)
1 2 3 4 P=1, restricted values for each position
Kolaylık için , permütasyonlara kısıtlama getirmeyecek şekilde tanımlayın . Benzer şekilde, olduğunda , böylece permütasyonlara herhangi bir kısıtlama getirmez.P≥Ng(N,M)=f(N,M,P)g(N,P)=f(N,M,P)M≥N
Özel durumda , ve gelen kısıtlama eşdeğerdir, bu yüzden göz ardı edilebilir ve :
cinsinden yazmamıza izin verirM=P=0MPfg
f(N,0,0)=g(N,0).
Problemin simetrisinden:
f(N,M,P)=f(N,P,M)
Önce için çözelim ve sonra daha genel başa çıkalım .g(N,M)f(N,M,P)
İçin , her bir eleman bir yerleşim kısıtlaması vardır (ve kısıtlamalar farklıdır). Yani bir element seçerek , onu bir pozisyon . Orada seçimi için farklı olasılıklar .M=0ijN−1j
Bu seçim, eleman için kısıtlı konumu kaldırırken, diğer elemanların hala bir kısıtlaması vardır. Biz yerleşimini kırabilir iki seçenek haline:j(N−2)j
Yer . Bu, diğer tüm öğeleri tek bir kısıtlamayla bırakır, bu nedenle kalan yerleştirme sorunu şimdi düşürülür .ig(N−2,0)
Bir konuma yerleştirin . Bu, şimdi için bir yerleşim kısıtlaması verir ve bu nedenle her öğenin bir kısıtlaması vardır ve kalan yerleşim sorunu düşürülür.≠ijg(N−1,0)
Bu özyinelemeli formülü verir:
g(N,0)=(N−1)[g(N−2,0)+g(N−1,0)]
Ve basit durumlara elle bakarak, temel vakaları alabilirsiniz.
g(1,0)=0, g(2,0)=1
Bu olağan düzensizlik özyinelemeli formüldür.
Birinin bu noktada geldiğini hayal edemesem de, bunun için kapalı bir form çözümü olduğu ortaya çıkıyor (ayrıntılar için düzensizlik wiki makalesine bakın).
g(N,0)=⌊n!e+12⌋
İçin , yerleşimler herhangi bir sınırlama vardır:M≥N
(M≥N)⟹g(N,M)=N!
İle , birinci elemanlarının herhangi bir kısıtlama olacaktır ve geri kalan elemanlar, bir yerleşim sınırlama söz konusu olacaktır. Pozisyonlar açısından, son pozisyonları tüm sayılara izin verecektir.0<M<NMM
Son konum için bir eleman seçin . Kalan yerleşimin nasıl göründüğü için iki olasılık vardır:i
Eğer , o zaman hiçbir yerleşim kısıtlamaları vardı, bu yüzden kullanarak herhangi bir pozisyon kısıtlamaları değişmez. Kısıtlama olmaksızın bir konumu da kaldırdık, bu nedenle kalan yerleşim gibi görünüyor .i<Miig(N−1,M−1)
Eğer , sonra bir yerleştirme kısıtlaması vardı ve biz hiçbir kısıtlama bir konum kaldırıldı. Çünkü yerleştirilir, buna daha sınırlıydı pozisyon kalan sayıların herhangi kabul edebilir. Böylece kalan yerleşim gibi görünür .i>=Miig(N−1,M)
Böylece bu özyinelemeli formülü verir:
(0<M<N)⟹g(N,M)=(M−1)g(N−1,M−1)+(N−M+1)g(N−1,M)
Bu, için özyinelemeli çözümü bitirir .g
Tüm , ilk pozisyonları üzerlerinde tek bir numara kısıtlama olmamakla beraber, son pozisyonları üzerlerinde tek bir numara kısıtlama sahiptir ve orta pozisyonları hiçbir kısıtlama yoktur. Bu tıpkı gibi.M+P≥NN−MN−PM+P−Ng(N,M+P−N)
(M+P)≥N⟹f(N,M,P)=g(N,M+P−N)
Biz hariç şu anda bütün davaları ele sahip ve öyle ki . Burada bazı öğelerin birden fazla kısıtlaması vardır. Çünkü simetri , düşünülebilecek genelliği kaybetmeden.0<M<N0<P<NM+P<Nf0<M≤P<N
İlk konumları tek bir kısıtlamaya, ardından iki kısıtlamaya sahip konumlarına sahip olacak, daha sonra son konumları tek bir kısıtlamaya sahip olacaktır.PN−M−PM
Elemanlara bakıldığında, ilk elemanlarının tek bir kısıtlaması olacak, daha sonra elemanlarının iki kısıtlaması olacak, daha sonra son elemanlarının tek bir kısıtlaması olacak.MN−M−PP
Ancak bu noktada bitmeliyiz. Çünkü bu yöntemle ilerlemenin bir yolu yok.
İki kısıtlamayı ayırdım, çünkü seçilen bir konuma bir sayı yerleştirmenin "+" kısıtlaması ve "-" kısıtlaması için kaç tane tek kısıtlanmış konumun dengesini bozabileceğini görebiliyordum .a−b≠±M
Ancak daha genel bir problemde, içine bir sayı koyarak bir pozisyonu kaldırmak her zaman ile açıklanan bir alt problemle sonuçlanmaz .f(N,M,P)
Permütasyondaki bu kısıtlamaları görselleştirmek için, düğümü, bir kümesi ve diğeri etiketli yönlendirilmiş bir grafik düşünün . Bir yönlendirilmiş kenar eğer var ve yönlendirilmiş kenar eğer var ve .2NN{A1,A2,...,AN}{B1,B2,...,BN}(Ai,Bj)i−j=M(Bj,Ai)j−i=MM≠0
düğümleri kümesi, bazı listede izin verdiğimiz sayılar olarak kabul edilebilir ve , olası konumlarını düğümler. Bu grafik kısıtlamaları temsil eder. Grafikte döngü olmayacak. Her zaman ayrık düğümler veya bir veya daha fazla uzunlukta zincirler olacaktır.AB
Bu nedenle, bu kısıtlama grafiğini girdi olarak alan ve kısıtlamaları karşılayan permütasyon sayısını çıkaran bir fonksiyon istiyoruz.
olduğu durumda , grafik sadece ayrık düğümler ve tek kenarlardır. Böylece A ve B düğümlerini kaldırmak, aynı zamanda ayrık düğümler ve tek kenarlar olan bir alt çizgi verecektir.M+P≥N
Ancak için grafikte uzun zincirler olabilir. Düğümü veya konumu sabitlememize bakılmaksızın, bir sayıyı kullanılabilir bir konuma yerleştirmek için, bunu oluşturmanın olası yollarının tüm alt bölümlerini dikkate almamız gerekir. Zincirleri kırmanın tüm farklı yolları, her turda parçasının sırasına göre bir "özyineleme" ile sonuçlanır ve bu nedenle, tüm kontrol etmeye kıyasla herhangi bir tasarruf varsa çok fazla bekleyemezsinizpermütasyon.N N !0<M≤P<NNN!
Zincirlere izin verildiğinde çok sayıda alt bölüm olduğu için, izomorfik olmayan kısıtlama grafiklerinin permütasyonların sayısına bir şekilde eşdeğer olduğunu söyleyen akıllı bir ilişki olmadığı sürece, her zamanki özyinelemeli yöntemlerle nasıl çözülebileceğini gerçekten görmüyorum.
Sanırım büyük olasılıkla, soru yanlış yorumlandı. Muhtemelen görüşmeci tarafından bile (cevap ayrıntılarını kendileri unutmuş olabilir).