Я искал алгоритм, который дает мне счетчик перестановок элементов 1....n
. Если я определяю длину цикла.
Например, n := 4
<Set of cycle lengths>
-> permutation count
1,1,1,1
-> 1
читать 4 цикла длина 1 приводит к 1 перестановке: 1,2,3,4
1,1,2
-> 5
чтение 2 циклов по длине 1 и 1 цикл по длине 2 приводит к 5 перестановкам: 1,2,4,3
, 1,4,3,2
, 1,3,2,4
, 2,1,3,4
, 3,2,1,4
,
2,2
-> 3
чтение 2 циклов длины 2 приводит к 3 перестановкам: 2,1,4,3
, 3,4,1,2
, 4,3,2,1
1,3
-> 9
чтение 1 цикла длины 1 и 1 цикла длины 3 приводит к 9 перестановкам 1,3,2,4
, 1,3,4,2
, 1,4,2,3
, 2,3,1,4
, 2,4,3,1
, 3,1,2,4
3,2,4,1
, 4,1,3,2
, 4,2,1,3
,
4
-> 6
чтение 1 цикл длины 4 приводит к 6 перестановкам: 2,3,4,1
, 2,4,1,3
, 3,1,4,2
, 3,4,2,1
, 4,1,2,3
, 4,3,1,2
Как я могу вычислить счетчик перестановок для данного набора, состоящего из длин цикла? Итерация по всем перестановкам невозможна.