Тема 23. Оператор присваивания и ветвления
23.02 Количество программ из A в B (на убывание)
Вспоминай формулы по каждой теме
Решай новые задачи каждый день
Вдумчиво разбирай решения
ШКОЛКОВО.
Готовиться с нами - ЛЕГКО!
Подтемы раздела оператор присваивания и ветвления
Решаем задачи

Ошибка.
Попробуйте повторить позже

Задача 1#63351

Исполнитель решил сыграть в игру. Он преобразовывает числа на доске с помощью трёх команд:

1. Вычесть 2

2. Вычесть 3

3. Извлечь корень

Первые две команды уменьшают число на доске на 2 и 3 соответственно, третья команда — извлекает из числа квадратный корень, если число является квадратом любого числа. Программа для такого исполнителя - это последовательность команд.

Сколько существует программ, которые преобразуют исходное число 25 в число 3?

Показать ответ и решение
def F(x, y):
    if x == y:
        return 1
    if x < y:
        return 0
    if x > y:
        return F(x - 2, y) + F(x - 3, y) + (F(pow(x, 0.5), y) if x >= 0 else 0)

print(F(25, 3))

Ответ: 238

Ошибка.
Попробуйте повторить позже

Задача 2#57112

Исполнитель Щелчок преобразует число на экране. У исполнителя есть три команды, которые обозначены латинскими буквами:

А. Вычти 3

Б. Вычти 5

В. Найди целую часть от деления на 3

Первая из них уменьшает число на экране на 3, вторая уменьшает число на экране на 5, третья заменяет число на экране на целую часть от деления числа на 3. Программа для исполнителя — это последовательность команд.

Сколько существует программ, для которых при исходном числе 68 результатом является число 4, и при этом траектория вычислений содержит числа 14 и 35?

Показать ответ и решение
a = [0] * 1000
a[68] = 1
for i in range(68, 3, -1):
    if i == 14 or i == 35:
        for j in range(i):
            a[j] = 0
    a[i - 3] += a[i]
    a[i - 5] += a[i]
    a[i // 3] += a[i]
print(a[4])

Ответ: 2024

Ошибка.
Попробуйте повторить позже

Задача 3#52529

Исполнитель Бот решил сыграть в игру. Он преобразовывает числа на доске с помощью трёх команд:

1. Вычесть 2

2. Вычесть 3

3. Извлечь корень

Первые две команды уменьшают число на доске на 2 и 3 соответственно, третья команда — извлекает из числа квадратный корень, если число является квадратом любого числа. Программа для такого исполнителя — это последовательность команд. Сколько существует программ, которые преобразуют исходное число 25 в число 3?

Показать ответ и решение
a = [0] * 1000
a[25] = 1
for i in range(24, 2, -1):
    a[i] = a[i + 2] + a[i + 3] + a[i ** 2]
print(a[3])

Ответ: 238
Рулетка
Вы можете получить скидку в рулетке!