купить рюкзак

Решение задач по комбинаторике. Алгоритмы по комбинаторике.

Назад

Hапечатать все перестановки чисел 1__N

Всего таких перестановок будет N!=N*(N-1)*...*2*1 (докажите!). Для составления алгоритма Next зададимся вопросом: в каком случае i-ый член перестановки можно увеличить, не меняя предыдущих? Ответ: если он меньше какого-либо из следующих членов (членов с номерами больше i).

Hапечатать все последовательности длины N из чисел 1,2__M

Всего таких последовательностей будет M^N (докажите!). Чтобы понять. как должна действовать процедура Next, начнем с примеров.

Дана строка S и набор A слов А[1],__ , A[k]_ Разбить строку S на слова набора всеми возможными способами

Эта задача реализуется следующим рекурсивным алгоритмом поиска с возвращением (все слова набора A упорядочены по номерам):

Обход доски шахматным конем

Перечислить все разбиения N на целые положительные слагаемые

Перечислить все различные представление числа N в виде всевозможных произведений (сумм) K натуральных чисел

Предложим простой способ построения всех разбиений числа.

Перечислить все расстановки 8-ми ферзей на шахматной доске, при которых они не бьют друг друга

Эту задачу решил больше 200 лет тому назад великий математик Леонард Эйлер.

Подсчитать количество слов длины К из данных N букв, не содержащих данное подслово

Элементы исходной последовательности-алфавита различны, слово зависит от порядка букв. Если в исходной последовательности есть одинаковые буквы, то надо будет кое-что подкорректировать (их-то порядок не важен будет в слове, если стоят рядом).

Сгенерировать все подмножества данного n-элементного множества {0,__, n-1}

Алгоритм: будем генерировать числа от 0 до 2n-1, находить их двоичное представление, и формировать подмножество из элементов с индексами единичных битов в этом представлении.

Ханойские башни

Есть три стержня A, B, и C. На стержень A надето N дисков, наверху самый маленький, каждый следующий диск больше предыдущего, а внизу самый большой. На другие стержни дисков не надето.

лобовое стекло ниссан армада