Учитывая массив из N элементов, представляющих атомы перестановки, существует ли такой алгоритм:
function getNthPermutation( $atoms, $permutation_index, $size )
где $atoms
- это массив элементов, $permutation_index
- это индекс перестановки, а $size
- размер перестановки.
Например:
$atoms = array( 'A', 'B', 'C' );
// getting third permutation of 2 elements
$perm = getNthPermutation( $atoms, 3, 2 );
echo implode( ', ', $perm )."\n";
Будет напечатан:
B, A
Без вычисления каждой перестановки до $permutation_index?
Я слышал что-то о фактографических перестановках, но каждая найденная реализация дает в результате перестановку с тем же размером V, что не является моим случаем.
Спасибо.