Я изучаю математику за количеством проходов, необходимых для сортировки каждой из возможных комбинаций целых чисел [1,n]
в array[n]
.
Например, с n = 3
есть 3! = 6
возможные перестановки чисел:
1,2,3 - 1,3,2 - 2,1,3 - 2,3,1 - 3,1,2 - 3,2,1.
- Одна из этих начальных перестановок требует
k = 0
пропусков (1,2,3)
для сортировки массива в порядке возрастания; - Три из них требуют
k = 1
проход (1,3,2 - 2,1,3 - 3,1,2)
и - Два требуют
k = 2
проходов (2,3,1 - 3,2,1)
.
По сути, я хочу иметь возможностьматематически вывести набор чисел проходов {k}
для данного n
.
Для n = 4
число начальных перестановок P, для которых требуется k проходов, составляет P(n,k) = 1,7,10,6 for k = 0,1,2,3
.
Конечно, когда-либо существует только 1 начальная перестановка для k = 0 (уже в порядке возрастания), то есть P(n,0) = 1
, и число начальных перестановок для наибольшего значения k (которое равно n-1)это k !, то есть P(n,n-1) = (n-1)!
.Или, по крайней мере, я так думаю ...
Я чувствую, что это проще, чем я делаю, и использует факторные формулы.