Асимптотично, скільки перестановок


17

Розглянемо перестановки σ з [1..n] . Інверсія визначається як пара (i,j) таких індексів, що i<j та σ(i)>σ(j) .

Визначте Ak кількість перестановок [1..n] з не більше k інверсіями.

Питання: Яка межа асимптотики обмежена для Ak ?

Раніше було задано відповідне питання: Кількість перестановок, що мають однакову відстань Кендалла-Тау

Але питання вище стосувалось обчислення Ak . Його можна обчислити за допомогою динамічного програмування, оскільки він задовольняє відношенню повторення, показаному тут: /programming/948341/dynamic-programming-number-of-ways-to-get-at-least-n-bubble -сортирування

Кількість перестановок з точно k інверсіями також було вивчено, і це можна виразити як генеруючу функцію: http://en.wikipedia.org/wiki/Permutation#Inversions

Але я не можу знайти формулу закритої форми або асимптотичну межу.


2
Якщо у вас є генеруючий многочлен для послідовності, ви можете отримати генеруючий многочлен для префікса сум просто множенням многочлена на 1/(1x) . У вашому випадку ви б використовували поліном, який ви зв'язали з цим, обчислюємо точно-k інверсії.
Суреш Венкат


1
@SureshVenkat Дякую за пораду. Але я все ще буду застряг у знаходженні коефіцієнта xk у цьому дійсно складному многочлені з точки зору n і k і я не бачу, як це зробити.
Vinayak Pathak

3
щоб отримати коефіцієнт xk , візьміть k -му похідну від породжувального многочлена і оцініть її при x=0 .
Сашо Ніколов

Відповіді:


12

Згідно з Вікіпедією, кількість перестановок в з точно k інверсіями є коефіцієнтом X k в 1 ( 1 + X ) ( 1 + X + X 2 ) ( 1 + X + + X n - 1 ) . Позначимо це через c ( n , k ) . Це показує, що c ( n + 1 ,SnkXk

1(1+X)(1+X+X2)(1+X++Xn1).
c(n,k) Тож кількість перестановок у S n з максимум k інверсіями дорівнює кількості перестановок у S n + 1 з рівно k інверсіями. Це має також акуратний комбінаторний доказ (натяк: взяти π S n + 1 і видалити n + 1 ).
c(n+1,k)=l=0kc(n,kl).
SnkSn+1kπSn+1n+1

XkXmm>kn>kc(n,k)Xk

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.

kt=k

c(n,k)=(n1k)+Ok(nk1)=1k!nk+Ok(nk1).
c(n+1,k)

k(n+tk1t)=(n+tk1nk1)tt=0kc(k,t)k!

(n1k)c(n,k)k!(n1k).

c(n,k)k!(n1k)ekk+1/2ek(e(n1)/k)kc(n,k)ek(n1)k
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.