Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Алгоритм получения перестановки, непосредственно следующей за даннойСодержание книги
Поиск на нашем сайте Akn =Nk. Сочетания (выборки) Другой классической задачей комбинаторики является задача о числе выборок: сколькими способами можно выбрать k из N различных предметов? Сочетание можно определить как подмножество из k различных натуральных чисел, принадлежащих множеству чисел из интервала от 1 до N. Наборы отличаются лишь составом элементов, порядок элементов роли не играет. Пусть N = 5, k = 3. Перечислим все сочетания: Сkn = N! / (k! * (N - k)!) Перестановки с повторениями* Имеется N предметов k различных типов. Сколько перестановок можно сделать из N1 предметов первого типа, N2 – второго…, Nk – k-того типа (N1+N2+…+Nk=N)? Выше рассмотрены перестановки из различных предметов. В том случае, когда некоторые переставляемые предметы одинаковы, часть перестановок совпадает друг с другом. Перестановок становится меньше. Общая формула для подсчета перестановок c повторениями имеет вид: P (N1, N2, …, Nk)=N!/(N1!*N2!*…*Nk!), где N= N1+N2+…+Nk- общее число элементов. Она следует из P (N1, N2, …, Nk) =
Сочетания с повторениями* Имеются предметы N различных типов. Сколько существует расстановок длины k, если не различать порядок элементов в расстановке (различные расстановки должны различаться хотя бы одним предметом)? Пусть N=4 и k=7. Закодируем расстановку с помощью последовательности из нулей и единиц. Запишем столько единиц, сколько предметов первого типа, затем нуль, а затем столько единиц, сколько предметов второго типа, и т.д. Суммарное количество единиц в последовательности равно 7, количество нулей – N-1 или 3, т.е. длина равна 10. Количество таких последовательностей определяется количеством способов записи 3 нулей на 10 мест, или С310=120. Или перестановки 7 единиц и 3 нулей: СkN = 10!/(3!*7!) Общая формула для подсчета числа сочетаний с повторениями имеет вид СkN= СN-1N+k-1= СkN+k-1 или СkN= (N+k-1)!/(k!*(n-1)!)
Разбиения* Требуется подсчитать число разбиений конечного множества предметов S, где S1 можно сформировать
Задача. Необходимо перечислить все перестановки для заданного значения N. Обязательное условие – отношение порядка на множестве перестановок. Предполагаем, что перестановка хранится в массиве P длины N. Лексикографический порядок на множестве всех перестановок определяется следующим образом: Р1<Р2 тогда и только тогда, когда существует такое t>=1, что P1[t]<=P2[t] и P1[i]=P2[i] для всех i<t. При решении данной задачи решается и задача получения следующей в лексикографическом порядке перестановки. Пример (N=3).
Лексикографический
(N, N-1, …,2,1) и является последней.
p1<p2… <pi<pi+1> pi+2>pi+3…> pj>…>pn получим последовательность p1<p2… <pj<pi+1> pi+2>pi+3…pi>…>pn.
Пример. Перестановка 11,8,5,1,7,4,10,9,6,3,2. Какая следующая перестановка идет в лексикографическом порядке?
· Находим «скачок» - 4 меньше 10. · Затем «в хвосте» перестановки находим первый элемент с конца перестановки, больший значения 4. Это значение 6. · Меняем местами элементы 4 и 6 · «хвост» перестановки ухудшаем максимально, т.е. расставляем элементы в порядке возрастания (переворачиваем).
Получаем перестановку 11,8,5,1,7,6,2,3,4,9,10.
Массив С(K) содержит индексы элементов массива A(N), входящих в сочетание, в лексикографическом порядке. Пример. Перечислим все сочетания из 5-элементного множества по 3 элемента в лексикографическом порядке: 1 2 3, 1 2 4, 1 2 5, 1 3 4, 1 3 5, 1 4 5, 2 3 4, 2 3 5, 2 4 5, 3 4 5. Начальное сочетание 12..k, последнее – (N-k+1)(N-k+2)..N. Переход от текущего сочетания к следующему осуществляется по алгоритму: 1) Просматриваем сочетание справа налево и находим первый элемент, который можно увеличить (последний k-й элемент сочетания для этого должен быть меньше или равен N, предпоследний – меньше или равен N-1 и т.д.). 2) Увеличиваем этот элемент на 1. 3) Часть сочетания (от этого элемента до конца) формируем из чисел натурального ряда, следующих за ним.
Способ 1. Будем перебирать K (0 < K £ 16) и находить все K- элементные подмножества N-элементного множества (см. задачу 3). Способ 2. Пример. Пусть определен массив char A[3] =(4, 2, 7); int N=3.
№ Двоичный код Подмножество
Для работы с двоичным кодом числа понадобятся операции N >> 1 – сдвиг вправо на один бит всего числа; N << 1 – сдвиг влево на один бит всего числа; при этом крайний левый бит вытесняется за сетку, крайний правый становится равным 0; N & А – логическое произведение над целыми числами выполняется поразрядно над двоичным представлением числа, результат - число; например: N & 1 =1, когда в правом бите 1. 1112=2n-1=710
|
||
|
Последнее изменение этой страницы: 2024-06-17; просмотров: 61; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.21 (0.007 с.) |