Получение номера об объекту и объекта по номеру — различия между версиями
Анастасия (обсуждение | вклад) |
Анастасия (обсуждение | вклад) |
||
Строка 14: | Строка 14: | ||
== Примеры == | == Примеры == | ||
− | '''Алгоритм вычисления по перестановке ее номера'''. Нам задана произвольная перестановка из N чисел. Пусть x - ее первое число. Тогда все перестановки с первыми числами от 1 до x-1 находятся перед нашей. Их количество | + | '''Алгоритм вычисления по перестановке ее номера'''. Нам задана произвольная перестановка из <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> |
− | '''Алгоритм получения перестановки по ее номеру''' реализуется аналогично: сначала определяем первую цифру перестановки, деля номер на (N-1)! и прибавляя 1, затем вторую, деля остаток от предыдущего деления на (N-2)!, и т.д. | + | '''Алгоритм получения перестановки по ее номеру''' реализуется аналогично: сначала определяем первую цифру перестановки, деля номер на <tex>(N-1)!</tex> и прибавляя 1, затем вторую, деля остаток от предыдущего деления на <tex>(N-2)!</tex>, и т.д. |
Версия 22:41, 15 января 2011
Содержание
Определение
Получение объекта по номеру n- это нахождение объекта, который стоит n-ым в лексикографическом порядке.
Получение номера по объекту - это нахождение номера объекта, стоящего в лексикографическом порядке.
Алгоритм
Нахождение номера по объекту:
, где это кол-во возможных объектов длины , начинающихся на элемент , - длина данного объекта.
Нахождение объекта по номеру:
Пусть
- длина объекта. Идем по порядку по всем элементам объекта ( - позиция элемента в объекте). Каждый элемент будет являться максимально возможным. Для кол-во возможных объектов , начинающихся на элемент и имеющих длину , не превосходит . С каждым шагом уменьшается на .Примеры
Алгоритм вычисления по перестановке ее номера. Нам задана произвольная перестановка из
чисел. Пусть - ее первое число. Тогда все перестановки с первыми числами от 1 до находятся перед нашей. Их количество равно . Осталось узнать номер перестановки из числа, получающейся из нашей выбрасыванием числа , и прибавить этот номер кАлгоритм получения перестановки по ее номеру реализуется аналогично: сначала определяем первую цифру перестановки, деля номер на
и прибавляя 1, затем вторую, деля остаток от предыдущего деления на , и т.д.