Изменения

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

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

808 байт добавлено, 23:16, 15 января 2011
Примеры
== Примеры ==
'''Алгоритм вычисления по перестановке ее номера'''. Нам задана произвольная перестановка из <tex>N</tex> чисел. Пусть <tex>x</tex> - ее первое число. Тогда все перестановки с первыми числами от 1 до <tex>x-1</tex> находятся перед нашей. Их количество <tex>s</tex> равно <tex>(x-1)·(N-1)!</tex>. Осталось узнать номер перестановки из <tex>N-1</tex> числа, получающейся из нашей выбрасыванием числа <tex>x</tex>, и прибавить этот номер к <tex>s</tex>
'''Алгоритм получения перестановки Вычислим по перестановке ее номеруномер.''' реализуется аналогичноВозьмем перестановку из 4 чисел: сначала определяем первую цифру перестановки3124. Перестановки, деля номер начинающиеся на <tex>числа 1, 2 находятся перед нашей. Их количество: 2*(N4-1)!</tex> и прибавляя =12. Следовательно минамально возможный номер нашей перестановки: 12+1=13. Следующий элемент перестановки - 1, затем вторуюминимально возможный, деля остаток от предыдущего деления на <tex>(Nследовательно номер перестановки не поменялся. 3-ий элемент перестановки -2)!</tex>, т.к. число 1 уже использовалось ранее в перестановке, то число 2 - минимально возможный элемент, и тон также не меняет номер перестановки. Последний элемент не играет роли.дСледовательно номер нашей перестановки 13.
'''Аналогично по номеру получим перестановку.''' Возьмем номер перестановки из 4 элементов: 13. Определим первую цифру перестановки, разделим нацело номер на (4-1)! и прибавим 1: x1 = 13 div (3!) + 1 = 3. Остаток от деления: 1. Аналогично найдем 2-й элемент: х2 = 1 div (2!) + 1 = 1. Остаток от деления: 1. 3-й элемент: х3 = 1 div (1!)+1 = 1. Но т.к. число 1 уже использовалось в перестановке, возьмем следующий в лексикографическом порядке элемент 2, следовательно х3 = 2. 4-ый элемент получается исключением х4 = 4. Получаем перстановку: 3124.
== Ссылки ==
[http://www.chasolimp.de/practic_info63.htm Получение объекта по номеру и номера по объекту]
16
правок

Навигация