Получение объекта по номеру — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
Строка 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+1 - ую'''''
+
   '''AlreadyWas <tex> i \leftarrow </tex> (NumOfPermutation-1) div f[n-i]            ''// сколько цифр уже полностью заняты предыдущими перестановками
 +
//тогда очевидно сейчас мы должны поставить ту цифру которая еще полностью не занята, т.е. AlreadyWas+1 - ую'''''
 
    
 
    
 
   
 
   

Версия 01:05, 26 октября 2011

Перестановки

Рассмотрим алгоритм получения i-ой в лексикографическом порядке перестановки.

[math]f[n]=n![/math]
for [math] i \leftarrow 1 [/math] to [math] n [/math] do    // n-это количество цифр в перестановке
  'AlreadyWas [math] i \leftarrow [/math] (NumOfPermutation-1) div f[n-i]             // сколько цифр уже полностью заняты предыдущими перестановками

//тогда очевидно сейчас мы должны поставить ту цифру которая еще полностью не занята, т.е. AlreadyWas+1 - ую


Сочетания

Размещения

Битовые вектора

Скобочные последовательности