Наибольшая чередующаяся подпоследовательность

Материал из testwiki
Перейти к навигации Перейти к поиску

В комбинаторике, теории вероятности и информатике задача о наибольшей чередующейся подпоследовательности состоит в том, чтобы найти подпоследовательность наибольшей длины заданной последовательности, такую, что её элементы расположены чередующимся образом.

Пусть 𝐱={x1,x2,,xn} — последовательность различных действительных чисел, тогда подпоследовательность {xi1,xi2,,xik} чередующаяся, если

xi1>xi2<xi3>xik1i1<i2<<ikn.

Аналогично, 𝐱 обратная чередующаяся, если

xi1<xi2>xi3<xik1i1<i2<<ikn.

Пусть asn(𝐱) обозначает длину(число элементов) наибольшей чередующейся подпоследовательности последовательности 𝐱. Например, если рассмотреть некоторую перестановку чисел 1,2,3,4,5, получится

  • as5(1,2,3,4,5)=2;
  • as5(1,5,3,2,4)=4, потому что 1,5,3,4 и 1,5,2,4 и 1,3,2,4 чередующиеся, и нет чередующейся подпоследовательности из большего числа элементов;
  • as5(5,3,4,1,2)=5, потому что 5,3,4,1,2 чередующаяся.

Эффективный алгоритм

Задача о наибольшей чередующейся подпоследовательности решается за время O(n), где n — длина исходной последовательности.

Также за время O(n) можно решить задачу о наибольшей чередующейся подпоследовательности с лексикографически минимальным множеством индексов, хоть это и заметно более сложная задача.

Вероятностные оценки

Если 𝐱 — случайная перестановка чисел 1,2,,n и Anasn(𝐱), тогда можно показать, что

E[An]=2n3+16andVar[An]=8n4513180.

Более того, при n случайная величина An центрированная, нормированная, её распределение стремится к нормальному.

См. также

Шаблон:Изолированная статья Шаблон:Нет ссылок