Изменения

Перейти к: навигация, поиск

Получение объекта по номеру

70 байт убрано, 04:11, 26 октября 2011
Нет описания правки
== Перестановки ==
Рассмотрим алгоритм получения i-ой в лексикографическом порядке перестановки размера n.
f[<tex>P_{n]=} </tex> ''- количество перестановок размера n! permutation[n] ''//- искомая перестановка'' was[n] ''//- использовали ли мы уже эту цифру в перестановке''
'''for''' i = 1 '''to''' n '''do''' ''//n - количество цифр в перестановке''
alreadyWas = (numOfPermutation-1) div f[<tex>P_{n-i] } </tex> ''// сколько цифр уже полностью заняты перестановками с меньшим номером'' numOfPermutation = ((numOfPermutation-1) mod f[<tex>P_{n-i]} </tex>) + 1
''//сейчас мы должны поставить ту цифру, которая еще полностью не занята, т.е. alreadyWas+1, которая еще не занята''
'''for''' j = 1 '''to''' n '''do'''
Рассмотрим алгоритм получения i-го в лексикографическом порядке размещения <tex> A^k_n </tex>
<tex>A^{k}_{n} </tex> ''- количество размещений из n по k
placement[n] ''//- искомое размещение'' was[n] ''//- использовали ли мы уже эту цифру в размещении''
'''for''' i = 1 '''to''' k '''do''' ''//k - количество цифр в размещении''
alreadyWas = (numOfPlacement-1) div <tex> A^{k-i}_{n-i} </tex> ''// сколько цифр уже полностью заняты перестановками размещениями с меньшим номером''
numOfPlacement = ((numOfPlacement-1) mod <tex> A^{k-i}_{n-i} </tex>) + 1
''//сейчас мы должны поставить ту цифру, которая еще полностью не занята, т.е. alreadyWas+1, которая еще не занята''
88
правок

Навигация