Поделитесь своими знаниями, ответьте на вопрос:
Ханойская башня на Python 3. Ввод: Первая строка содержит количество дисков - натуральное число N (N≤10^5 Вторая строка файла содержит строку символов длины N. Для каждого i (1≤i≤N) i-й символ - 'A', если диск с номером i находится на стержне A, 'B' - если на стержне B, 'C' - если на стержне C. Вывод: В единственной строке должно быть выведено одно неотрицательное число - минимальное количество оборотов, необходимое для того, чтобы все диски располагались на стержне B, согласно модулю 10^9 + 9. Последнее условие не имеет другого смысла, кроме уменьшения размера выходного числа. Например, если пять дисков расположены, как показано на рисунке 2, то требуется 10 ходов, чтобы расположить их на стержне B: A → C, B → C, A → B, C → B, C → A, B → A, C → B, A → C, A → B, C → B. Чтобы упростить задачу, на этот раз вам нужно будет найти только наименьшее количество необходимых ходов. Напишите программу, определяющую минимально необходимое количество оборотов после модуля 10 ^ 9 + 9 для данной колесной формулы, чтобы все колеса были помещены на стержень B.
1.
а)
а = а - 4 = 7 - 4 = 3
b = -a = -3
c = -a + 2 * b = -3 + 2 * (-3) = -3 - 6 = -9
б)
b = a + 4 = 2 + 4 = 6
b = 1 - b = 1 - 6 = -5
c = -b + 3 * a = -5 + 3 * 2 = -5 + 6 = 1
2.
a)
b = 5? (Нет, 0)b: = b + 1 = 0 + 1 = 1
a: = a * 3 = 1 * 3 = 3
b = 5? (Нет, 1)b: = b + 1 = 1 + 1 = 2
a: = a * 3 = 3 * 3 = 9
b = 5? (Нет, 2)b: = b + 1 = 2 + 1 = 3
a: = a * 3 = 9 * 3 = 27
b = 5? (Нет, 3)b: = b + 1 = 3 + 1 = 4
a: = a * 3 = 27 * 3 = 81
b = 5? (Нет, 4)b: = b + 1 = 4 + 1 = 5
a: = a * 3 = 81 * 3 = 243
б)
b = 0? (Нет, 3)b: = b - 1 = 3 - 1 = 2
a: = a * 4 = 1 * 4 = 4
b = 0? (Нет, 2)b: = b - 1 = 2 - 1 = 1
a: = a * 4 = 4 * 4 = 16
b = 0? (Нет, 1)b: = b - 1 = 1 - 1 = 0
a: = a * 4 = 16 * 4 = 64