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


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 -sort-свопы

Количество перестановок с ровно К инверсиями также было изучено и может быть выражено в виде производящей функции: http://en.wikipedia.org/wiki/Permutation#Inversions

Но я не могу найти формулу замкнутой формы или асимптотическую оценку.


2
Если у вас есть порождающий полином для последовательности, вы можете вывести порождающий полином для сумм префиксов, просто умножив полином на 1/(1-Икс) . В вашем случае вы использовали бы связанный с вами многочлен, который вычисляет ровно k инверсий.
Суреш Венкат


1
@SureshVenkat Спасибо за совет. Но я все еще буду застревать с поиском коэффициента в этом действительно сложном полиноме в терминах n и k, и я не вижу, как это сделать. ИксКNК
Винаяк Патхак

3
чтобы получить коэффициент , возьмите k-ю производную производящего полинома и оцените его при x = 0 . ИксККИксзнак равно0
Сашо Николов

Ответы:


12

Согласно Википедии, число перестановок в с ровно k инверсиями является коэффициентом X k в 1 ( 1 + X ) ( 1 + X + X 2 ) ( 1 + X + + X n - 1 ) . Обозначим это через c ( n , k ) . Это показывает, что с ( п + 1 ,SNКИксК

1(1+Икс)(1+Икс+Икс2)(1+Икс++ИксN-1),
с(N,К) Таким образом, число перестановок в S n с не более чем k инверсиями равно числу перестановок в S n + 1 с ровно k инверсиями. Это также имеет хорошее комбинаторное доказательство (подсказка: возьмем π S n + 1 и удалим n + 1 ).
с(N+1,К)знак равноΣLзнак равно0Кс(N,К-L),
SNКSN+1КπSN+1N+1

Если нас интересует только коэффициент , то факторы X m при m > k не имеют значения. Таким образом, для n > k , c ( n , k ) является коэффициентом X k в ИксКИксмм>КN>Кс(N,К)ИксК Это подразумевает формулу c(n,k)=kt=0(n+t-k-1

1(1+Икс)(1+Икс++ИксК-1)(1+Икс++ИксК+)N-Кзнак равно1(1+Икс)(1+Икс++ИксК-1)1(1-Икс)N-Кзнак равно1(1+Икс)(1+Икс++ИксК-1)ΣTзнак равно0(T+N-К-1T)ИксT,
с(N,К)знак равноΣTзнак равно0К(N+T-К-1T)с(К,К-T),N>К,

Когда является постоянным, наиболее важным асимптотически является термин, соответствующий t = k , и мы имеем c ( n , k ) = ( n - 1КTзнак равноК Та же самая асимптотика работает дляc(n+1,k), что вы и сделали.

с(N,К)знак равно(N-1К)+ОК(NК-1)знак равно1К!NК+ОК(NК-1),
с(N+1,К)

Для непостоянных , используя тот факт, что ( n + t - k - 1К(N+T-К-1T)знак равно(N+T-К-1N-К-1)TΣTзнак равно0Кс(К,T)К!

(N-1К)с(N,К)К!(N-1К),

с(N,К)К!(N-1К)еКК+1/2е-К(е(N-1)/К)Кс(N,К)еК(N-1)К
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.