Изменения

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

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

3 байта добавлено, 13:58, 2 ноября 2013
Перестановки
== Перестановки ==
Рассмотрим алгоритм получения номера в лексикографическом порядке по данной перестановки перестановке размера <tex>n</tex>.
*P[1..n] {{---}} количество перестановок данного размера.
*a[1..n] {{---}} данная перестановка.
'''for''' i = 1 '''to''' n '''do''' ''// n - количество цифр в перестановке''
'''for''' j = 1 '''to''' a[i] - 1 '''do''' ''// перебираем элемент , который может стоять на i-м месте лексикографически меньше нашего
'''if''' was[j] == false ''// если элемент j ранее не был использован
'''then''' numOfPermutation += P[n - i] ''// все перестановки с префиксом длиной i-1 равным нашему, и i-й элемент у которых меньше
'' нашего в лексикографическом порядке идут раньше данной престановки перестановки
was[i] = true ''// элемент i использован
Анонимный участник

Навигация