Получение номера по объекту — различия между версиями
Анастасия (обсуждение | вклад) (Новая страница: «== Определение == '''Получение номера по объекту''' - это нахождение номера объекта, стоящего …») |
Анастасия (обсуждение | вклад) (→Пример) |
||
Строка 8: | Строка 8: | ||
Возьмем перестановки из 3-х элементов в лексикографическом порядке, найдем номер перестановки 132: | Возьмем перестановки из 3-х элементов в лексикографическом порядке, найдем номер перестановки 132: | ||
− | 123 | + | 123, |
− | '''132''' | + | '''132''', |
− | 213 | + | 213, |
− | 231 | + | 231, |
− | 312 | + | 312, |
321 | 321 | ||
Номер искомой перестановки: 2. | Номер искомой перестановки: 2. | ||
− | |||
== Алгоритм == | == Алгоритм == |
Версия 00:08, 16 января 2011
Содержание
Определение
Получение номера по объекту - это нахождение номера объекта, стоящего в лексикографическом порядке.
Пример
Возьмем перестановки из 3-х элементов в лексикографическом порядке, найдем номер перестановки 132:
123, 132, 213, 231, 312, 321
Номер искомой перестановки: 2.
Алгоритм
, где это кол-во возможных объектов длины , начинающихся на элемент , - длина данного объекта.
Алгоритм нахождение номера перестановки
Нам задана произвольная перестановка из N чисел. Пусть x - ее первое число. Тогда все перестановки с первыми числами от 1 до x-1 находятся перед нашей. Их количество num равно (x-1)·(N-1)!. Осталось узнать номер перестановки из N-1 числа, получающейся из нашей выбрасыванием числа x, и прибавить этот номер к num
Пример нахождения номера перестановки
Возьмем перестановку из 4 чисел: 3124. Перестановки, начинающиеся на числа 1, 2 находятся перед нашей. Их количество: 2*(4-1)!=12. Следовательно минамально возможный номер нашей перестановки: 12+1=13. Следующий элемент перестановки - 1, минимально возможный, следовательно номер перестановки не поменялся. 3-ий элемент перестановки - 2, т.к. число 1 уже использовалось ранее в перестановке, то число 2 - минимально возможный элемент, и он также не меняет номер перестановки. Последний элемент не играет роли. Следовательно номер нашей перестановки 13.