"Информатика", Рудченко Т.А., Семёнов А.Л. / Под ред. Семёнова А.Л.
Дерево всех вариантов — схема для перебора последовательных выборов. Из начальной вершины выходят ветви, обозначающие возможные решения на первом шаге; из каждой ветви строятся продолжения для следующих шагов. Так видно, какие последовательности допустимы и не пропущен ли вариант. Полный путь от начала до конца соответствует одному результату. Дерево помогает и перечислить варианты, и посчитать их, особенно когда условия ограничивают выбор.
Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.
Дерево всех вариантов — схема, которая показывает последовательное построение возможных вариантов выбора. Оно помогает увидеть, какие решения можно принять сначала и чем продолжить каждое из них. Такая схема нужна, чтобы систематически перечислять исходы и проверять, не пропущен ли какой-либо вариант.
Ветвь — линия на дереве, соответствующая одному из возможных выборов на очередном шаге. Например, ветвь с подписью «чай» показывает выбор чая среди напитков. Подписи помогают читать схему и понимать, какое решение привело к каждой части дерева.
Уровень дерева — совокупность вершин, соответствующих одному и тому же шагу выбора. Если сначала выбирают напиток, а затем булочку, вершины после первого выбора относятся к первому уровню, а вершины после второго — ко второму. Уровни помогают не перепутать порядок действий и увидеть, сколько шагов уже выполнено.
Путь в дереве — последовательность ветвей от начальной вершины до конечной; он задаёт один полный вариант. Например, ветви «чай» и «сдобная булочка» вместе образуют путь, то есть один выбор завтрака. По путям удобно перечислять готовые варианты и находить их общее количество.
Построение дерева начинают с начальной вершины: она обозначает ситуацию до первого выбора. С неё удобно начинать, потому что пока ни одно решение не принято и все возможности ещё рассматриваются вместе. Начальная вершина служит общей точкой, от которой расходятся разные варианты действий.
Из каждой вершины проводят ветви по числу возможных продолжений и подписывают каждую выбранным вариантом. Вершина показывает, к какой ситуации уже пришли, поэтому её продолжения могут отличаться от продолжений других вершин. Если не подписывать ветви, станет трудно понять, какие решения образуют один и тот же путь.
Следующий уровень дерева соответствует следующему шагу выбора. Поэтому на каждом пути решения записаны в том порядке, в котором их принимают: сначала первое, затем его продолжение. Такой порядок нужен, чтобы не смешивать последовательности, в которых один и тот же набор действий выполнен по-разному.
Ветвление продолжают, пока не будут выполнены все шаги задачи. Остановка нужна именно после последнего решения: тогда конечные вершины соответствуют полным вариантам, а не промежуточным состояниям. Если из вершины ещё можно сделать выбор, путь до неё пока не описывает готовый результат.
Количество полных вариантов можно найти, посчитав конечные вершины или пути от начальной вершины до них. Эти способы дают один результат, потому что каждая конечная вершина завершает один полный путь. Считать нужно только завершённые пути: вершины на промежуточных уровнях показывают отдельные этапы, а не готовые варианты.
| Элемент дерева | Что обозначает | Как использовать |
|---|---|---|
| Начальная вершина | Ситуацию до первого выбора | Начать с неё построение дерева и чтение путей |
| Ветвь | Один возможный выбор на очередном шаге | Прочитать подпись и проследить продолжение |
| Уровень | Вершины, относящиеся к одному шагу выбора | Определить, какой шаг уже выполнен |
| Конечная вершина | Завершение всех шагов | Учесть её как один полный вариант |
| Путь от начала до конца | Последовательность всех решений | Прочитать или посчитать один вариант целиком |
Читайте дерево от начальной вершины к конечным, последовательно собирая подписи ветвей. Таблица помогает различать отдельный выбор, шаг и готовый вариант. При подсчёте ориентируйтесь на конечные вершины или полные пути, а не на все вершины схемы.
Для завтрака можно выбрать один из двух напитков и одну из двух булочек. Пусть напитки — чай и сок, а булочки — сдобная и ржаная. Сначала ветвим дерево по напиткам, затем от каждой полученной вершины проводим ветви к обеим булочкам.
Получаются варианты: чай и сдобная булочка; чай и ржаная булочка; сок и сдобная булочка; сок и ржаная булочка. Их четыре, потому что у каждой из двух ветвей напитков есть по два продолжения. Ответ: 4 варианта завтрака.
Участник выбирает один из трёх маршрутов до парка, а затем один из двух способов добраться от парка до музея. Выбор второго шага совершается после первого, поэтому дерево будет иметь два уровня ветвления. Если любой способ доступен после каждого маршрута, из каждой вершины первого уровня выходят две ветви.
Все пути различаются хотя бы одним выбором и описывают отдельные поездки. Проверка совпала с подсчётом по дереву, значит, при условии доступности обоих способов после любого маршрута учтены все сочетания. Ответ: 6 разных поездок.
Из цифр 1, 2 и 3 составляют двузначные числа без повторения цифр. На первом шаге выбирают цифру десятков, а на втором — цифру единиц. После первого выбора эту цифру нельзя использовать снова, поэтому число ветвей на втором шаге зависит от первой цифры.
Получаются числа 12, 13, 21, 23, 31 и 32. В каждой ветви первого выбора есть по два продолжения, поэтому всего 3 × 2 = 6 полных путей. Ответ: 12, 13, 21, 23, 31 и 32.
Пропущенная ветвь означает, что один из возможных выборов на шаге не учтён. Такое случается, когда ученик рассматривает только очевидные продолжения или забывает проверить одну из вершин. Чтобы проверить себя, для каждой вершины отдельно перечислите все доступные варианты и сравните их с ветвями.
Недопустимый вариант появляется, если при построении забыли об ограничении задачи, например разрешили повторить цифру там, где повторение запрещено. Ошибку часто допускают, перенося одинаковые ветви в каждую вершину без проверки условий. Проследите каждый полный путь и проверьте, соответствует ли он всем ограничениям.
Если посчитать вершины всех уровней, получится лишний результат: промежуточные вершины не являются полными вариантами. Путаница возникает потому, что вершины удобно считать, но их назначение на разных уровнях различается. Для проверки считайте только конечные вершины или пути от начала до конца.
Можно ошибочно посчитать одинаковые варианты разными или объединить различные последовательности выборов. Это происходит, если не учитывать порядок действий или, наоборот, считать порядок важным там, где он не меняет результат. Сравните подписи вдоль путей с условием и заранее определите, считаются ли разные последовательности разными вариантами.
Для построения дерева нужно уметь выделять последовательные шаги выбора и перечислять результаты каждого шага. Это связывает тему с внимательным анализом условий: сначала выясняют, какие действия выполняются и какие ограничения действуют. Если шаги определены неверно, дерево не поможет получить правильный ответ.
Дерево вариантов используют в задачах на перебор и подсчёт комбинаций. Оно помогает проверить, что список возможных исходов полон, а каждый результат удовлетворяет условиям. В простых случаях число путей можно сопоставить с произведением количества выборов на шагах, если эти количества не зависят от предыдущих решений.
Зачем строить дерево, если можно просто перечислить варианты?
Дерево наглядно показывает последовательность шагов и все возможные продолжения каждого выбора. С ним легче заметить пропуск или вариант, который нарушает условие. Для небольшого перебора дерево также помогает составить полный список.
Что обозначает каждая ветвь дерева?
Ветвь обозначает один возможный выбор на очередном шаге. Её подпись показывает, какой именно вариант выбран. Из конца ветви рассматривают следующие допустимые решения.
Как понять, что дерево вариантов построено полностью?
Проверьте, что на каждом шаге учтены все допустимые выборы из каждой вершины. Затем проследите каждый путь от начала до конца: он должен описывать полный вариант, соответствующий условиям. Не должно оставаться подходящих продолжений, которые не попали в дерево.
Нужно ли рисовать одинаковое число ветвей из каждой вершины?
Нет, число ветвей может отличаться. Например, если выбор зависит от предыдущего решения или действует запрет на повторение, из разных вершин могут выходить разные количества ветвей. Нужно показывать все допустимые продолжения, а не делать ветви одинаковыми.
Как посчитать варианты по дереву, не выписывая их все?
Если дерево построено, можно посчитать конечные вершины или полные пути от начальной вершины. Когда на каждом шаге число выборов одинаково и не зависит от предыдущих, удобно перемножить количества вариантов на шагах. При ограничениях такой подсчёт нужно выполнять с учётом числа ветвей в каждой части дерева.
Дерево всех вариантов