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

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

Версия 01:10, 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 - ую

Сочетания

Размещения

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

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