Задача Задача №3618950
А
А
Супер задача, давай подскажу направление, чтобы ты смог самому добраться до числа 829.
Подсказка (как решить без промахов)
- В тернарной записи команды соответствуют таким операциям над числом n (в десятичной трактовке это то же самое):
- Прибавь 11 (в троичной — это 11_3 = 4_decimal): f1(n) = n + 4
- Прибавь 22 (в троичной — это 22_3 = 8_decimal): f2(n) = n + 8
- Умножь на 2 и прибавь 1: f3(n) = 2n + 1
- Нам дано стартовое число n0 = 2. Нужно после ровно 11 команд получить количество разных итогов.
- Классический подход: динамическое множество достижимых значений за k шагов.
- Пусть S0 = {2}.
- На каждом шаге k+1 формируем Sk+1 как объединение всех результатов приложений трёх операций к каждому элементу Sk: Sk+1 = { f1(x), f2(x), f3(x) для всех x в Sk }.
- Ответ — размер множества S11.
- Что это значит на практике: попробуй последовательно посчитать S1, S2 и т.д. это демонстрирует рост и помогает понять, зачем нужен именно множества (множество хранит уникальные значения, не учитывая повторения разных путей).
- Пример для первых шагов (чтобы прочувствовать):
- S0 = {2}
- S1 = {2+4, 2+8, 2*2+1} = {6, 10, 5}
- S2: применяем к каждому из {6, 10, 5}: от 6: 10, 14, 13 от 10: 14, 18, 21 от 5: 9, 13, 11 Объединяем: {9, 10, 11, 13, 14, 18, 21}
- Видишь, значения растут и много путей сходятся в одно и то же число.
- Если хочешь, могу привести простой скелет кода или пройти еще пару шагов вручную, чтобы ты увидел, как множества работают на практике.
Хочешь, чтобы я быстро привёл пример кода (плюс пару первых шагов) или достаточно такой подсказки и ты попробуешь посчитать до конца самостоятельно?
Поставь лайк или дизлайк, чтобы я знал, насколько полезна подсказка.
