Ошибка.
Попробуйте повторить позже
У исполнителя КРАБИК три команды, которым присвоены номера:
1. прибавь 1
2. прибавь 5
3. умножь на 2
Первая из них увеличивает на 1 число на экране, вторая увеличивает это число на 5, третья - увеличивает это число в 2 раза.
Программа для КРАБИКА — это последовательность команд. Сколько существует программ, которые число 2 преобразуют в число 16, но не проходят через число 10?
def f(x, y): if x == y: return 1 if x > y or x==10: return 0 return f(x + 1, y) + f(x + 5, y) + f(2 * x , y) print(f(2, 16))
Ошибка.
Попробуйте повторить позже
Исполнитель преобразует число на экране. У исполнителя есть две команды, которым присвоены номера:
1. Увеличь на 1
2. Умножь на 2
Программа для исполнителя – это последовательность команд.
Сколько существует программ, для которых при исходном числе 5 результатом является число 299, если известно, что никакую команду нельзя выполнять более трёх раз подряд?
# c1 - количество совершенных команд 1 # с2 - количество совершенных команд 2 def f(a, b, c1=0, c2=0): if a > b: return 0 if a == b: return 1 s = 0 if c1 < 3: s += f(a + 1, b, c1 + 1, 0) if c2 < 3: s += f(a * 2, b, 0, c2 + 1) return s print(f(5, 299))
Ошибка.
Попробуйте повторить позже
Исполнитель преобразует число на экране. У исполнителя есть три команды, которым присвоены номера:
1. Увеличь на 1
2. Увеличь на 3
3. Умножь на 4
Программа для исполнителя – это последовательность команд.
Сколько существует программ, для которых при исходном числе 1 результатом является число 824, при этом траектория вычислений содержит числa 21 и 68, причём можно использовать только ту команду, чей номер отличается на 1 от номера команды, выполненной на предыдущем шаге?
# c - номер команды на предыдущем шаге # r1 - флаг наличия в траектории 21 # r2 - флаг наличия в траектории 68 def f(a, b, c=0, r1=False, r2=False): if a > b: return 0 if a == b and r1 and r2: return 1 if a == 21: r1 = True if a == 68: r2 = True if c == 1 or c == 3: return f(a + 3, b, 2, r1, r2) if c == 2: return f(a + 1, b, 1, r1, r2) + f(a * 4, b, 3, r1, r2) return f(a + 1, b, 1, r1, r2) + f(a + 3, b, 2, r1, r2) + f(a * 4, b, 3, r1, r2) print(f(1, 824))
Ошибка.
Попробуйте повторить позже
Исполнитель преобразует число на экране. У исполнителя есть три команды, которым присвоены номера:
1. Увеличь на 4
2. Умножь на 2
3. Умножь на 3
Программа для исполнителя – это последовательность команд.
Сколько существует программ, для которых при исходном числе 2 результатом является число 296, при этом траектория вычислений содержит число 6, не содержит числа 18 и после первой команды нельзя использовать третью, а после второй - первую?
# c - номер команды на предыдущем шаге # r - флаг наличия в траектории 6 def f(a, b, c=0, r=False): if a > b or a == 18: return 0 if a == b and r: return 1 if a == 6: r = True s = f(a * 2, b, 2, r) if c != 1: s += f(a * 3, b, 3, r) if c != 2: s += f(a + 4, b, 1, r) return s print(f(2, 296))
Ошибка.
Попробуйте повторить позже
Исполнитель преобразует число на экране. У исполнителя есть три команды, которым присвоены номера:
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. Увеличь на разряд единиц
2. Увеличь на разряд десятков
3. Умножь на разряд единиц
4. Умножь на разряд десятков
5. Прибавь 1
Первая и третья команды используют значение разряда единиц числа (например у 13 это 3, а у 28 - 8), а вторая и четвертая команды используют значение разряда десятков числа (например у 81 это 8, а у 35 это 3). Причём не разрешается выполнять команду, если после неё число на экране не изменится, либо превратится в 0. Программа для исполнителя – это последовательность команд.
Сколько существует программ, для которых при исходном числе 25 результатом является число 111, если известно, что нельзя повторять команду, сделанную два шага назад (например программа 112 допустима, а 121 - нет)?
from functools import lru_cache # c1 - номер команды на предыдущем шаге # с2 - номер команды на ПРЕДпредыдущем шаге @lru_cache(None) def f(a, b, c1=0, c2=0): if a > b: return 0 if a == b: return 1 s = 0 x = a % 10 # Число единиц y = a // 10 % 10 # Число десятков if c2 != 1 and x != 0: s += f(a + x, b, 1, c1) if c2 != 2 and y != 0: s += f(a + y, b, 2, c1) if c2 != 3 and x != 0 and x != 1: s += f(a * x, b, 3, c1) if c2 != 4 and y != 0 and y != 1: s += f(a * y, b, 4, c1) if c2 != 5: s += f(a + 1, b, 5, c1) return s print(f(25, 111))
Ошибка.
Попробуйте повторить позже
Исполнитель преобразует число на экране. У исполнителя есть шесть команд, которым присвоены номера:
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. Прибавь 8
2. Умножь на 3
3. Увеличь на разряд единиц
Первая из них увеличивает число на экране на 8, вторая увеличивает число на экране в 3 раза, третья увеличивает число на экране на значение разряда единиц (например число 12 увеличится на 2, а число 25 на 5). Программа для исполнителя – это последовательность команд.
Сколько существует программ, для которых при исходном числе 4 результатом является число 174, если известно, что нельзя повторять команду, сделанную на предыдущем шаге.
# c - номер команды на предыдущем шаге def f(a, b, c=0): if a > b: return 0 if a == b: return 1 s = 0 if c != 1: s += f(a + 8, b, 1) if c != 2: s += f(a * 3, b, 2) if c != 3: s += f(a + (a % 10), b, 3) return s print(f(4, 174))
Ошибка.
Попробуйте повторить позже
Исполнитель преобразует число на экране. У исполнителя есть две команды, которым присвоены номера:
1. Прибавить 4
2. Прибавить 5
Программа для исполнителя — это последовательность команд. Сколько существует программ, для которых при исходном числе 31 результатом является число 113 и при этом траектория вычислений не содержит числа, кратные 5?
def f(a,b): if a > b or a % 5 == 0:return 0 if a == b:return 1 return f(a+4,b)+f(a+5,b) print(f(31,113))
Ошибка.
Попробуйте повторить позже
Исполнитель преобразует число на экране. У исполнителя есть четыре команды, которым присвоены номера:
1. Прибавить 2
2. Прибавить 5
3. Умножь на 3
4.Прибавь до кратного 2
Программа для исполнителя — это последовательность команд. Команда 1 прибавляет к числу 2. Команда 2 прибавляет к числу 5. Команда 3 умножает число на 3. Команда 4 прибавляет к числу такое значение (прибавлять ноль нельзя), чтобы в итоге получилось ближайшее число, кратное двум. Сколько существует программ, для которых при исходном числе 4 результатом является число 66 и при этом траектория вычислений содержит числа 15,23 и не содержит числа 42,56?
from functools import lru_cache @lru_cache(None) def f(a,b): if a > b or a == 42 or a == 56:return 0 if a == b:return 1 return f(a+2,b)+f(a+5,b)+f(a*3,b)+f(a+(2-a%2),b) print(f(4,15)*f(15,23)*f(23,66))
Ошибка.
Попробуйте повторить позже
Исполнитель преобразует число на экране. У исполнителя есть три команды, которым присвоены номера:
1. Прибавить 2
2. Прибавить 3
3. Умножь на 4
Программа для исполнителя — это последовательность команд. Сколько существует программ, для которых при исходном числе 12 результатом является число от 50 до 60(включительно) и при этом траектория вычислений не содержит число 33?
def f(a,b): if a > b or a == 33:return 0 if a == b:return 1 return f(a+2,b)+f(a+3,b)+f(a*4,b) c = 0 for i in range(50,61): c += f(12,i) print(c)
Ошибка.
Попробуйте повторить позже
Исполнитель преобразует число на экране. У исполнителя есть три команды, которым присвоены номера:
1. Уменьши на 1
2. Уменьши на 4
3. Подели нацело на 2
Программа для исполнителя — это последовательность команд. Сколько существует программ, для которых при исходном числе 60 результатом является число 10 и при этом траектория вычислений содержит числа 56,30,18?
def f(a,b): if a < b:return 0 if a == b:return 1 return f(a-1,b)+f(a-4,b)+f(a//2,b) print(f(60,56)*f(56,30)*f(30,18)*f(18,10))
Ошибка.
Попробуйте повторить позже
Исполнитель преобразует число на экране. У исполнителя есть четыре команды, которым присвоены номера:
1. Прибавить 1
2. Прибавить 2
3. Умножь на 3
4. Прибавь до кратного 3
Программа для исполнителя — это последовательность команд. Команда 1 прибавляет к числу 1. Команда 2 прибавляет к числу 2. Команда 3 умножает число на 3. Команда 4 прибавляет к числу такое значение (прибавлять ноль нельзя), чтобы в итоге получилось ближайшее число, кратное трём. Сколько существует программ, для которых при исходном числе 3 результатом является число 77 и при этом траектория вычислений не содержит чётные числа?
def f(a,b): if a > b or a % 2 == 0:return 0 if a == b:return 1 return f(a+1,b)+f(a+2,b)+f(a*3,b)+f(a+(3-a%3),b) print(f(3,77))
Ошибка.
Попробуйте повторить позже
Исполнитель преобразует число на экране. У исполнителя есть три команды, которым присвоены номера:
1. Прибавить 1
2. Прибавить 2
3. Умножь на 2
Программа для исполнителя — это последовательность команд. Сколько существует программ, для которых при исходном числе 2 результатом является число 41 и при этом траектория вычислений содержит число 30 и не содержит число 7?
def f(a,b): if a > b or a == 7:return 0 if a == b:return 1 return f(a+1,b)+f(a+2,b)+f(a*2,b) print(f(2,30)*f(30,41))
Ошибка.
Попробуйте повторить позже
Исполнитель преобразует число на экране. У исполнителя есть три команды, которым присвоены номера:
1. Прибавить 2
2. Прибавить 3
3. Возвеcти в квадрат
Программа для исполнителя — это последовательность команд. Сколько существует программ, для которых при исходном числе 2 результатом является число 33 и при этом траектория вычислений не содержит число 16?
from functools import lru_cache @lru_cache(None) def f(a,b): if a > b or a == 16:return 0 if a == b:return 1 return f(a+2,b)+f(a+3,b)+f(a*a,b) print(f(2,33))
Ошибка.
Попробуйте повторить позже
Исполнитель преобразует число на экране. У исполнителя есть три команды, которым присвоены номера:
1. Прибавить 2
2. Прибавить 3
3. Умножить на 4
Программа для исполнителя — это последовательность команд. Сколько существует программ, для которых при исходном числе 2 результатом является число 26 и при этом траектория вычислений содержит число 16?
def f(a,b): if a > b: return 0 if a == b:return 1 return f(a+2,b)+f(a+3,b)+f(a*4,b) print(f(2,16)*f(16,26))
Ошибка.
Попробуйте повторить позже
Исполнитель преобразует число на экране. У исполнителя есть две команды, которым присвоены номера:
1. Уменьшить на 2
2. Поделить нацело на 3
Программа для исполнителя — это последовательность команд. Сколько существует программ, для которых при исходном числе 123 результатом является число 2?
def f(a,b): if a < b: return 0 if a == b:return 1 return f(a-2,b)+f(a//3,b) print(f(123,2))