Шаг 129.
Рекурсия на Python.
Задачи подсчёта. Примеры задач

    На этом шаге мы рассмотрим несколько заданий и приведем их решения.

    Приведем несколько примеров решения задач.

    Задание 1. У нас есть n одинаковых костей для игры в "домино" размера 1*2 (или 2*1 при повороте на 90°). Выведите рекурсивную функцию, определяющую количество способов выложить из костей (без наложений и дыр) прямоугольник размером 2*n. На рисунке 1 приведён конкретный пример для n = 10.


Рис.1. Выкладывание прямоугольника размером 2*10 из костей домино размером 1*2 или 2*1

Раскрыть/скрыть решение и комментарии.

    Задание 2. Баскетбольная команда может набирать очки тремя различными способами: штрафной бросок - одно очко, бросок с игры (в пределах трёхочковой зоны) - два очка и бросок из-за трёхочковой зоны - три очка. Найдите функцию, определяющую количество вариантов набора баскетбольной командой n очков. Например, существует 4 варианта набрать 3 очка: 1 + 1 + 1, 1 + 2, 2 + 1 и 3. Как видим, последовательность получения очков имеет значение.

Раскрыть/скрыть решение и комментарии.

    Задание 3. Реализуйте функцию вычисления чисел Каталана C(n) в (8.1).

Раскрыть/скрыть решение и комментарии.

    Со следующего шага мы начнем рассматривать множественную рекурсию.




Предыдущий шаг Содержание Следующий шаг