Задание 23. Оператор присваивания и ветвления. Перебор вариантов, построение дерева

Печать

Рейтинг: 5 / 5

Звезда активнаЗвезда активнаЗвезда активнаЗвезда активнаЗвезда активна
 

ВАРИАНТ 1

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

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

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

 

Траектория вычислений программы — это последовательность результатов выполнения всех команд программы. Например, для программы 122 при исходном числе 10 траектория будет состоять из чисел 9, 4, 2.

Решение и ответ
 

 def f(x, y):
    if x == y:
        return 1
    elif x < y:
        return 0
    else:
        return f(x-1, y) + f(x//2, y)

print(f(50,20) * f(20,1))

Ответ2340

ВАРИАНТ 2

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

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

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

 

Траектория вычислений программы — это последовательность результатов выполнения всех команд программы. Например, для программы 122 при исходном числе 10 траектория будет состоять из чисел 9, 4, 2.

Решение и ответ
 

 

аналогично 1 варианту

Ответ1956

ВАРИАНТ 3

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

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

Первая из них уменьшает число на экране на 1, вторая заменяет число на экране на целую часть от деления числа на 2.
Программа для исполнителя — это последовательность команд. Сколько существует программ, для которых при исходном числе 50 результатом является число 1, и при этом траектория вычислений программы содержит число 20 и не содержит число 10?

 

Траектория вычислений программы — это последовательность результатов выполнения всех команд программы. Например, для программы 122 при исходном числе 10 траектория будет состоять из чисел 9, 4, 2.

Решение и ответ
 

 def f(x, y):
    if x == y:
        return 1
    elif x < y or x == 10:
        return 0
    else:
        return f(x-1, y) + f(x//2, y)

print(f(50,20) * f(20,1))

Ответ1620

ВАРИАНТ 4

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

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

Первая из них уменьшает число на экране на 1, вторая заменяет число на экране на целую часть от деления числа на 2.
Программа для исполнителя — это последовательность команд. Сколько существует программ, для которых при исходном числе 60 результатом является число 1, и при этом траектория вычислений программы содержит число 20 и не содержит число 4?

 

Траектория вычислений программы — это последовательность результатов выполнения всех команд программы. Например, для программы 122 при исходном числе 10 траектория будет состоять из чисел 9, 4, 2.

Решение и ответ
 

 

аналогично 4 варианту

Ответ1760

ВАРИАНТ 5

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

1. Прибавить 2
2. Прибавить 7

 

Первая команда увеличивает число на экране на 2, вторая увеличивает это число на 7. Программа для исполнителя Увеличитель – это последовательность команд. Сколько существует программ, которые число 5 преобразуют в число 49?

Решение и ответ
 

def f(n):
    if n == 49:
        return 1
    elif n > 49:
        return 0
    else:
        return f(n+2) + f(n+7)

print(f(5))

Ответ639

ВАРИАНТ 6

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

1. Прибавить 2
2. Прибавить 7

 

Первая команда увеличивает число на экране на 2, вторая увеличивает это число на 7. Программа для исполнителя Увеличитель – это последовательность команд. Сколько существует программ, которые число 7 преобразуют в число 51?

Решение и ответ
 

 

аналогично 5 варианту

Ответ639

ВАРИАНТ 7

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

1. Прибавить 2
2. Прибавить 10

 

Первая команда увеличивает число на экране на 2, вторая увеличивает это число на 10. Программа для исполнителя Увеличитель – это последовательность команд. Сколько существует программ, которые число 5 преобразуют в число 71?

Решение и ответ
 

def f(x):
    if x == 71:
        return 1
    elif x > 71:
        return 0
    else:
        return f(x + 2) + f(x + 10)

print(f(5))

Ответ5411

ВАРИАНТ 8

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

1. Прибавить 2
2. Прибавить 10

 

Первая команда увеличивает число на экране на 2, вторая увеличивает это число на 10. Программа для исполнителя Увеличитель – это последовательность команд. Сколько существует программ, которые число 7 преобразуют в число 71?

Решение и ответ
 

аналогично 7 варианту

Ответ4085

ВАРИАНТ 9

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

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

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

Траектория вычислений программы — это последовательность результатов выполнения всех команд программы. Например, для программы 121 при исходном числе 18 траектория будет состоять из чисел 17, 8, 7.

Решение и ответ
 

def f(x, y):
    if x == y:
        return 1
    elif x < y:
        return 0
    else:
        return f(x-1, y) + f(x//2, y)

print(f(30,10) * f(10,1))

Ответ360

ВАРИАНТ 10

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

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

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

 

Траектория вычислений программы — это последовательность результатов выполнения всех команд программы. Например, для программы 121 при исходном числе 18 траектория будет состоять из чисел 17, 8, 7.

Решение и ответ
 

 

аналогично варианту 9

Ответ171

ВАРИАНТ 11

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

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

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

 

Траектория вычислений программы — это последовательность результатов выполнения всех команд программы. Например, для программы 121 при исходном числе 18 траектория будет состоять из чисел 17, 5, 4.

 

Решение и ответ
 

def f(x, y):
    if x == y:
        return 1
    elif x < y:
        return 0
    else:
        return f(x-1,y) + f(x//3,y) 

 

print (f(33,9) * f(9,1))

Ответ72

ВАРИАНТ 12

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

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

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

 

Траектория вычислений программы — это последовательность результатов выполнения всех команд программы. Например, для программы 121 при исходном числе 18 траектория будет состоять из чисел 17, 5, 4.

 

Решение и ответ
 

 

аналогично варианту 11

Ответ54

ВАРИАНТ 13

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

1. Прибавить 2
2. Умножить на 2
3. Умножить на 3

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

 

Траектория вычислений программы — это последовательность результатов выполнения всех команд программы. Например, для программы 132 при исходном числе 4 траектория будет состоять из чисел 6, 18, 36.

Решение и ответ
 

def f(x, y):
    if x == y:
        return 1
    elif x > y:
        return 0
    else:
        return f(x+2,y) + f(x*2,y) + f(x*3,y) 

print (f(1,6) * f(6,24))

Ответ40

ВАРИАНТ 14

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

1. Прибавить 2
2. Умножить на 2
3. Умножить на 3

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

 

Траектория вычислений программы — это последовательность результатов выполнения всех команд программы. Например, для программы 132 при исходном числе 4 траектория будет состоять из чисел 6, 18, 36.

Решение и ответ
 

 

аналогично 13 варианту

Ответ30

ВАРИАНТ 15

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

1. Прибавить 3
2. Прибавить 4
3. Умножить на 3

Первая из них увеличивает число на экране на 3, вторая на 4, третья умножает его на 3.
Программа для Вычислителя — это последовательность команд. Сколько существует программ, которые преобразуют число 1 в число 30, и при этом траектория вычислений программы содержит число 7 ?

 

Траектория вычислений программы — это последовательность результатов выполнения всех команд программы. Например, для программы 132 при исходном числе 2 траектория будет состоять из чисел 5, 15, 19.

Решение и ответ

def f(x, y):
    if x == y:
        return 1
    elif x > y:
        return 0
    else:
        return f(x+3,y) + f(x+4,y) + f(x*3,y) 

print (f(1,7) * f(7,30)) 

Ответ58

ВАРИАНТ 16

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

1. Прибавить 5
2. Прибавить 4
3. Умножить на 3

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

 

Траектория вычислений программы — это последовательность результатов выполнения всех команд программы. Например, для программы 132 при исходном числе 1 траектория будет состоять из чисел 6, 18, 22.

Решение и ответ
 

 

аналогично 15 варианту

Ответ16

ВАРИАНТ 17

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

1. Прибавить 1
2. Прибавить 3
3. Умножить на 2

Первая из них увеличивает число на экране на 1, вторая на 3, третья умножает его на 2.
Программа для Вычислителя — это последовательность команд. Сколько существует программ, которые преобразуют число 2 в число 14, и при этом траектория вычислений программы содержит числа 6 и 9? Траектория должна содержать оба указанных числа.

 

Траектория вычислений программы — это последовательность результатов выполнения всех команд программы. Например, для программы 132 при исходном числе 7 траектория будет состоять из чисел 8, 16, 19.

Решение и ответ
 

def f(x, y):
    if x == y:
        return 1
    elif x > y:
        return 0
    else:
        return f(x+1,y) + f(x+3,y) + f(x*2,y) 

print (f(2,6) * f(6,9) *  f(9,14))

Ответ40

ВАРИАНТ 18

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

1. Прибавить 1
2. Прибавить 3
3. Умножить на 2

Первая из них увеличивает число на экране на 1, вторая на 3, третья умножает его на 2.
Программа для Вычислителя — это последовательность команд. Сколько существует программ, которые преобразуют число 2 в число 14, и при этом траектория вычислений программы содержит числа 8 и 11? Траектория должна содержать оба указанных числа.

 

Траектория вычислений программы — это последовательность результатов выполнения всех команд программы. Например, для программы 132 при исходном числе 7 траектория будет состоять из чисел 8, 16, 19.

Решение и ответ
 

 

аналогично варианту 17

Ответ24

ВАРИАНТ 19

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

1. Прибавить 1
2. Умножить на 2

Первая из них увеличивает число на экране на 1, вторая умножает его на 2.
Программа для исполнителя Счетчик — это последовательность команд. Сколько существует программ, для которых при исходном числе 3 результатом является число 27, и при этом траектория вычислений содержит число 12 и не содержит числа 23?

 

Траектория вычислений программы — это последовательность результатов выполнения всех команд программы. Например, для программы 121 при исходном числе 5 траектория будет состоять из чисел 6, 12, 13.

Решение и ответ
 

def f(x, y):
    if x == y:
        return 1
    elif x > y or x == 23:
        return 0
    else:
        return f(x+1, y) + f(x*2, y)

print(f(3,12) * f(12,27))

Ответ12

ВАРИАНТ 20

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

1. Прибавить 1
2. Умножить на 2

Первая из них увеличивает число на экране на 1, вторая умножает его на 2.
Программа для исполнителя Счетчик — это последовательность команд. Сколько существует программ, для которых при исходном числе 2 результатом является число 26, и при этом траектория вычислений содержит число 10 и не содержит числа 19?

 

Траектория вычислений программы — это последовательность результатов выполнения всех команд программы. Например, для программы 121 при исходном числе 5 траектория будет состоять из чисел 6, 12, 13.

Решение и ответ
 

 

аналогично 19 варианту

Ответ28