Asymptotycznie, ile permutacji


17

Rozważ permutację σ wynoszącą [1 ..n] . Inwersję definiuje się jako parę (ja,jot) indeksów takich, że ja<jot i σ(ja)>σ(jot) .

Zdefiniuj ZAk jako liczbę permutacji [1 ..n] z co najwyżej k inwersjami.

Pytanie: Jaka jest ścisła asymptotyczna granica dla ZAk ?

Podobne pytanie zostało zadane wcześniej: Liczba permutacji, które mają tę samą odległość Kendall-Tau

Ale pytanie powyżej dotyczące obliczania ZAk . Można go obliczyć za pomocą programowania dynamicznego, ponieważ spełnia przedstawioną tutaj relację powtarzalności: /programming/948341/dynamic-programming-number-of-ways-to-get-at-least-n-bubble -sort-swap

Zbadano również liczbę permutacji z dokładnie k inwersjami, które można wyrazić jako funkcję generującą: http://en.wikipedia.org/wiki/Permutation#Inversions

Ale nie mogę znaleźć formuły zamkniętej ani asymptotycznej granicy.


2
Jeśli masz generujący wielomian dla sekwencji, możesz uzyskać generujący wielomian dla sum prefiksu po prostu mnożąc wielomian przez 1/(1−x) . W twoim przypadku użyjesz wielomianu, z którym się łączysz, który oblicza dokładnie k inwersji.
— Suresh Venkat


1
@SureshVenkat Dzięki za wskazówkę. Ale będę nadal tkwić w znalezieniu współczynnika w to naprawdę skomplikowane pod względem wielomian n i k a ja nie wiem, jak to zrobić. xknk
— Vinayak Pathak

3
aby uzyskać współczynnik , weź k-tą pochodną wielomianu generującego i oceń ją przy x = 0 . xkkx=0
— Sasho Nikolov

Odpowiedzi:


12

Według Wikipedii liczba permutacji w przy dokładnie k inwersjach jest współczynnikiem X k w 1 ( 1 + X ) ( 1 + X + X 2 ) ⋯ ( 1 + X + ⋯ + X n - 1 ) . Oznacz to przez c ( n , k ) . To pokazuje, że c ( n + 1 ,SnkXk

1(1+X)(1+X+X2))⋯(1+X+⋯+Xn-1).
do(n,k) Zatem liczba permutacji wSnz co najwyżejkinwersjami jest równa liczbie permutacji wSn+1z dokładniekinwersjami. Ma to również zgrabny dowód kombinatoryczny (wskazówka: weźπ∈Sn+1i usuńn+1).
do(n+1,k)=∑l=0kdo(n,k-l).
S.nkS.n+1kπ∈S.n+1n+1

Jeśli interesuje nas tylko współczynnik , to czynniki X m dla m > k nie mają znaczenia. Zatem dla n > k , c ( n , k ) to współczynnik X k w XkXmm>kn>kc(n,k)Xk To implikuje wzór c(n,k)=k∑t=0(n+t-k-1

1(1+X)⋯(1+X+⋯+Xk−1)(1+X+⋯+Xk+⋯)n−k=1(1+X)⋯(1+X+⋯+Xk−1)1(1−X)n−k=1(1+X)⋯(1+X+⋯+Xk−1)∑t=0∞(t+n−k−1t)Xt.
c(n,k)=∑t=0k(n+t−k−1t)c(k,k−t),n>k.

Gdy jest stałe, asymptotycznie najważniejszym terminem jest ten odpowiadający t = k , a mamy c ( n , k ) = ( n - 1kt=k

c(n,k)=(n-1k)+Ok(nk-1)=1k!nk+Ok(nk-1).
do(n+1,k)

k(n+t-k-1t)=(n+t-k-1n-k-1) rośnie w t i ∑t=0kdo(k,t)≤k!, dostajemy granice

(n-1k)≤do(n,k)≤k!(n-1k).
Lepsze granice są z pewnością możliwe, ale zostawię to tobie.

Korzystając z aproksymacji Stirlinga i granic dwumianowych, możemy uprościć ostatnie wyrażenie c(n,k)≤k!(n−1k)≤ekk+1/2e−k(e(n−1)/k)k so c(n,k)≤ek(n−1)k. This is not tight of course but it's a more elegant bound than I would expect from those approximations.
— SamM
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.