(И. Карпачёв) У исполнителя имеются две команды, которые обозначены латинскими буквами:
Первая команда увеличивает число на экране на \(8.\) Вторая команда уменьшает число на экране на \(6\) (отрицательные числа допускаются). Сколько различных чисел можно получить из числа \(7\) с помощью программы, которая содержит ровно \(8\) команд, при условии, что траектория программы содержит число \(17?\)
Решение:
Python
def calc(arr):
tmp = [a + [a[-1] + 8] for a in arr] + [a + [a[-1] - 6] for a in arr]
return tmp
def bfs(arr, step):
if step == 8:
return set([a[-1] for a in arr if a.count(17) > 0])
return bfs(calc(arr), step+1)
print(len(bfs([[7]], 0)))
Ответ: \(6\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене