Вероятность сомнения - PullRequest
       10

Вероятность сомнения

0 голосов
/ 06 февраля 2011

Я работаю над проблемой, которая выглядит как - Существует изначально неупорядоченный набор чисел. и цель состоит в том, чтобы сортировать это. сортировка должна выполняться путем перетасовки чисел до тех пор, пока они не попадут в правильные места (да, Bogosort'ish :)). У перетасовки есть одна оптимизация, которая, если после перетасовки любые элементы в начале или в конце списка попадают их правильные места, эти элементы будут зафиксированы, а остальные элементы будут перетасованы с использованием той же логики. Задача состоит в том, чтобы вычислить среднее число f shuffles, необходимое для сортировки первоначально неупорядоченного набора чисел, скажем, 6. Я знаю, что это последовательность распределения по линии вероятности, но я не в состоянии полностью сосредоточиться на ней. Будем весьма благодарны за любые предложения / советы в правильном направлении или подходе.

Спасибо

1 Ответ

1 голос
/ 06 февраля 2011

Это может быть вычислено рекурсивно.

  • Для списка длиной 0 в среднем требуется 0 перемешиваний.f (0) = 0.
  • Список длины 1 требует в среднем 0 перемешиваний.f (1) = 0.
  • Список длины 2 после тасования имеет несколько возможностей:
    • Уже отсортирован (вероятность 50%): 0 тасов.
    • Это еще не отсортировано (вероятность 50%):
      • Перемешивание сортирует его: 1 перемешивание.
      • Перемешивание не помогает, нужно повторить попытку: 1 + f (2) перемешивает.

Эта запись может быть записана как:

f(2) = ((1/2) * 0) + ((1/2) * (1/2) * 1) + ((1/2) * (1/2) * (1 + f(2)).
f(2) = 2/3

Таким способом можно перейти к более крупным входам, уменьшив их до меньшихвходы, которые вы уже решили.

...