Получение объекта по номеру — различия между версиями
Antonkov (обсуждение | вклад) |
Antonkov (обсуждение | вклад) |
||
Строка 3: | Строка 3: | ||
'''<tex>f[n]=n!</tex>''' | '''<tex>f[n]=n!</tex>''' | ||
'''for''' <tex> i \leftarrow 1 </tex> '''to''' <tex> n </tex> '''do ''// n-это количество цифр в перестановке''''' | '''for''' <tex> i \leftarrow 1 </tex> '''to''' <tex> n </tex> '''do ''// n-это количество цифр в перестановке''''' | ||
− | '''AlreadyWas \leftarrow (NumOfPermutation-1) div f[n-i] ''// сколько цифр уже полностью заняты предыдущими перестановками | + | '''AlreadyWas <tex> i \leftarrow </tex> (NumOfPermutation-1) div f[n-i] ''// сколько цифр уже полностью заняты предыдущими перестановками |
+ | //тогда очевидно сейчас мы должны поставить ту цифру которая еще полностью не занята, т.е. AlreadyWas+1 - ую''''' | ||
Версия 01:05, 26 октября 2011
Перестановки
Рассмотрим алгоритм получения i-ой в лексикографическом порядке перестановки.
for to do // n-это количество цифр в перестановке 'AlreadyWas (NumOfPermutation-1) div f[n-i] // сколько цифр уже полностью заняты предыдущими перестановками
//тогда очевидно сейчас мы должны поставить ту цифру которая еще полностью не занята, т.е. AlreadyWas+1 - ую