Пусть A [1.. n] - массив чисел n distinct
. Если я < j и A [i] > A [j], то пара (i, j) называется инверсией A. (См. задачу 2-4 для большей части инверсий.) Предположим, что каждый элемент из A выбирается случайным образом независимо, и равномерно от 1 до n. Используйте случайные переменные индикатора индикатора для вычисления ожидаемого числа инверсий.
Проблема заключается в упражнении 5.2-5 во введении к алгоритмам Кормена. Вот мое рекурсивное решение:
Предположим, что x (i) - число инверсий в [1..i], а E (i) - ожидаемое значение x (i), тогда E (i + 1) можно вычислить следующим образом:
У нас естьi+1
положения, чтобы поместить все числа, если поместить я + 1 в первую позицию, тогда x (i + 1) = я + x (i); если мы поместим я + 1 во вторую позицию, то x (i + 1) = i-1 + x (i),..., поэтому E (i + 1) = 1/(i + 1) * sum ( k) + E (i), где k = [0, i]. Наконец, получим E (i + 1) = i/2 + E (i).
Поскольку мы знаем, что E (2) = 0,5, поэтому мы получаем рекурсивно: E (n) = (n-1 + n-2 +... + 2)/2 + 0,5 = n * (n-1)/4.
Хотя вывод выше, кажется, прав, но я все еще не очень уверен в этом. Поэтому я разделяю его здесь.
Если что-то не так, пожалуйста, поправьте меня.