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.

Vinayak Pathak
źródło
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/(1x) . W twoim przypadku użyjesz wielomianu, z którym się łączysz, który oblicza dokładnie k inwersji.
Suresh Venkat
2
To jest oeis.org/A161169
András Salamon
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)=kt=0(n+t-k-1

1(1+X)(1+X++Xk1)(1+X++Xk+)nk=1(1+X)(1+X++Xk1)1(1X)nk=1(1+X)(1+X++Xk1)t=0(t+nk1t)Xt.
c(n,k)=t=0k(n+tk1t)c(k,kt),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.
Yuval Filmus
źródło
Korzystając z aproksymacji Stirlinga i granic dwumianowych, możemy uprościć ostatnie wyrażenie c(n,k)k!(n1k)ekk+1/2ek(e(n1)/k)k so c(n,k)ek(n1)k. This is not tight of course but it's a more elegant bound than I would expect from those approximations.
SamM