Ошибка.
Попробуйте повторить позже
Исполнитель преобразует число на экране. У исполнителя есть три команды, которым присвоены номера:
1. Увеличь на 8
2. Уменьши на 4
3. Раздели на 2
Причём команду 3 можно применять только для чётных чисел. Программа для исполнителя – это последовательность команд.
Сколько различных натуральных результатов можно получить при исходном числе 16 в ходе исполнения программы, содержащей ровно 10 команд, если известно, что нельзя повторять третью команду, если она была использована на предыдущем шаге.
# Множество различных результатов работы программы s = set() # c - номер команды на предыдущем шаге # k - счётчик количества совершенных команд def f(a, c=0, k=0): if k == 10: if a >= 1: s.add(a) return f(a + 8, 1, k + 1) f(a - 4, 2, k + 1) if c != 3 and a % 2 == 0: f(a // 2, 3, k + 1) f(16) print(len(s))
Ошибка.
Попробуйте повторить позже
Исполнитель преобразует число на экране. У исполнителя есть три команды, которым присвоены номера:
1. Увеличь на 1
2. Умножь на 2
3. Умножь на 3
Программа для исполнителя – это последовательность команд.
Сколько существует программ, для которых при исходном числе 8 результатом является число 123, если известно, что после второй команды обязательно должна идти третья?
# c - номер команды на предыдущем шаге def f(a, b, c=0): if a > b: return 0 if a == b: return 1 if c == 2: return f(a * 3, b, 3) return f(a + 1, b, 1) + f(a * 2, b, 2) + f(a * 3, b, 3)
Ошибка.
Попробуйте повторить позже
Исполнитель преобразует число на экране. У исполнителя есть три команды, которым присвоены номера:
1. Увеличь на 6
2. Увеличь на 9
3. Умножь на 3
Программа для исполнителя – это последовательность команд.
Сколько различных результатов можно получить при исходном числе 3 в ходе исполнения программы, содержащей ровно 9 команд, если известно, что повторять можно только первую команду, а вторую и третью - нельзя (после первой команды может идти любая другая, но после второй не может идти вторая, а после третьей - третья)?
# Множество различных результатов работы программы s = set() # c - номер команды на предыдущем шаге # k - счётчик количества совершенных команд def f(a, c=0, k=0): if k == 9: s.add(a) return f(a + 6, 1, k + 1) if c != 2: f(a + 9, 2, k + 1) if c != 3: f(a * 3, 3, k + 1) f(3) print(len(s))
Ошибка.
Попробуйте повторить позже
Исполнитель преобразует число на экране. У исполнителя есть четыре команды, которым присвоены номера:
1. Увеличь на 3
2. Увеличь на 5
3. Умножь на 2
4. Умножь на 3
Программа для исполнителя – это последовательность команд.
Сколько различных результатов можно получить при исходном числе 35 в ходе исполнения программы, содержащей ровно 18 команд, если известно, что нельзя повторять команду с тем же арифметическим действием, что и у сделанной на предыдущем шаге (после умножения нельзя повторять умножение, после сложения нельзя повторять сложение)?
# Множество различных результатов работы программы s = set() # c - номер команды на предыдущем шаге # k - счётчик количества совершенных команд def f(a, c=0, k=0): if k == 18: s.add(a) return if c != 1 and c != 2: f(a + 3, 1, k + 1) f(a + 5, 2, k + 1) if c != 3 and c != 4: f(a * 2, 3, k + 1) f(a * 3, 4, k + 1) f(35) print(len(s))
Ошибка.
Попробуйте повторить позже
Исполнитель преобразует число на экране. У исполнителя есть шесть команд, которым присвоены номера:
1. Прибавь 3
2. Прибавь 7
3. Прибавь 1
4. Умножь на 2
5. Умножь на 4
6. Умножь на 1.5
Причём команду 6 можно использовать только если число на экране чётное. Программа для исполнителя – это последовательность команд.
Сколько различных результатов можно получить при исходном числе 10 в ходе исполнения программы, содержащей не менее 1, но не более 8 команд, если известно, что совершать можно только команду, чей номер отличен по чётности от номера команды, совершенной на предыдущем шаге (например после команды 2 нельзя использовать команду 4, но можно команду 5)?
# Множество различных результатов работы программы s = set() # c - номер команды на предыдущем шаге, причём c = 0.5 для того, чтобы изначально сработали оба условия: и c % 2 != 0, и c % 2 != 1. # k - счётчик количества совершенных команд def f(a, c=0.5, k=0): if 1 <= k <= 8: s.add(a) elif k > 8: return 0 if c % 2 != 0: f(a + 7, 2, k + 1) f(a * 2, 4, k + 1) if a % 2 == 0: f(int(a * 1.5), 6, k + 1) if c % 2 != 1: f(a + 3, 1, k + 1) f(a + 1, 3, k + 1) f(a * 4, 5, k + 1) f(10) print(len(s))
Ошибка.
Попробуйте повторить позже
Исполнитель Сотка преобразует число, записанное на экране. У исполнителя есть три команды, которым присвоены номера:
1. Прибавить 1.
2. Отнять 2.
3. Умножить на 3.
Первая команда увеличивает число на 1, вторая уменьшает число на 2, третья – умножает на 3. Сколько различных результатов можно получить из исходного числа 2 после выполнения программы, содержащей 20 команд, если известно, что запрещено повторять команду, сделанную на предыдущем шаге.
from functools import lru_cache @lru_cache(None) def f(a,c,last = ’’): #Ввёдем в функцию 2 параметра: ’c’ и ’last’. Параметр ’c’ является счётчиком команд. # Параметр ’last’ записывает последнюю выполненную команду для того чтобы две одинаковые команды не совершались друг за другом if c == 20:A.add(a) if c < 20: # Пока количество команд меньше 20,мы изменяем число if last == ’’: f(a+1,c+1,’+1’) f(a-2,c+1,’-2’) f(a*3,c+1,’*3’) if last == ’+1’: f(a-2,c+1,’-2’) f(a*3,c+1,’*3’) if last == ’-2’: f(a + 1, c + 1, ’+1’) f(a*3,c+1,’*3’) if last == ’*3’: f(a+1,c+1,’+1’) f(a-2,c+1,’-2’) A =set() f(2,0)#Вызываем функцию print(len(A))#Выводим количество различных результатов программы
Ошибка.
Попробуйте повторить позже
Исполнитель Пробник преобразует число на экране. У исполнителя есть две команды:
1. Прибавить 3
2. Умножить на 4
Программа для исполнителя - это последовательность команд. Сколько существует значений, в которые можно прийти не более чем за 8 команд из числа 2?
d = set() def f(a,c,m): #В данной функции добавлены два параметра: ’c’ и ’m’. # Параметр ’c’ - это счётчик команд. Параметр ’m’ отвечает за количество команд в данном вычислении. if c > m:return 0 if c == m: d.add(a) return if c < m: f(a+3,c+1,m) f(a*4,c+1,m) ans = [f(2,0,0),f(2,0,1),f(2,0,2),f(2,0,3),f(2,0,4),f(2,0,5),f(2,0,6),f(2,0,7),f(2,0,8)]#Выполняем вызовы функций. # В 3-ем параметре числа от 0 до 8,поскольку нас интересуют кол-во значений,в которой можно получить не более чем за 8 команд. print(len(d))