Нашли опечатку? Выделите ее мышкой и нажмите Ctrl+Enter
Название: Комбинаторика и переборные задачи
Аннотация:
- Методы програмирования: переборные алгоритмы
Описано, как создавать подобные программы. Доступно, и даны основные приемы...
- Hапечатать все последовательности длины N из чисел 1,2..M
Всего таких последовательностей будет M^N (докажите!).
- Подсчитать количество слов длины К из данных N букв, не содержащих данное подслово
Данная задача, в общем-то не требует особого алгоритма. Я помещаю здесь ее решение, чтобы показать, как можно рассуждать, если не требуется напечатать все слова, а только узнать их число.
- Hапечатать все перестановки чисел 1..N
Всего таких перестановок будет N!=N*(N-1)*...*2*1 (докажите!).
- Сгенерировать все подмножества данного n-элементного множества {0,.., n-1}
Будем генерировать числа от 0 до 2n-1, находить их двоичное представление, и формировать подмножество из элементов с индексами единичных битов в этом представлении.
- Разбиение на слова
Дана строка S и набор A слов А[1],.. , A[k]. Разбить строку S на слова набора всеми возможными способами.
- Перечислить все разбиения N на целые положительные слагаемые
Чтобы разбиения не повторялись, договоримся перечислять слагаемые в невозрастающем порядке.
- Все представления в виде произведения(cуммы)
Перечислить все различные представление числа N в виде всевозможных произведений (сумм) K натуральных чисел
- Расстановки Ферзей
Перечислить все расстановки 8-ми ферзей на шахматной доске, при которых они не бьют друг друга.
- Обход доски шахматным конем
- Ханойские башни
Есть три стержня A, B, и C. На стержень A надето N дисков, наверху самый маленький, каждый следующий диск больше предыдущего, а внизу самый большой. На другие стержни дисков не надето.