У исполнителя Альфа две команды, которым присвоены номера:
1. прибавь 1;
2. умножь на b
(b — неизвестное натуральное число; b ≥ 2).
Выполняя первую из них, Альфа увеличивает число на экране на 1, а выполняя вторую, умножает это число на b. Программа для исполнителя Альфа — это последовательность номеров команд. Известно, что программа 11211 переводит число 6 в число 82. Определите значение b.
10
Последовательно выполняем команды программы "11211": (6 + 1 + 1) * b + 1 + 1 = 82 (6 + 2) * b = 82 - 2 8b = 80 b = 10
Вариант 1:
for b in range(2, 100): if (6 + 1 + 1) * b + 1 + 1 == 82: print(b)
Вариант 2:
def f(x,b,p): if p=='1': return x+1 return x*b for b in range(2, 100): x = 6 prog = '11211' for p in prog: x = f(x,b,p) if x == 82: print(b)
У исполнителя Альфа две команды. которым присвоены номера:
1. Вычти b;
2. Умножь на 5.
(b — неизвестное натуральное число).
Выполняя первую из них, Альфа уменьшает число на экране на b, а выполняя вторую, умножает это число на 5. Программа для исполнителя Альфа — это последовательность номеров команд. Известно, что программа 21121 переводит число 2 в число 17. Определите значение b.
3
Последовательно выполняем команды программы "21121": (2 * 5 - b - b) * 5 - b = 17 (10 - 2b) * 5 - b = 17 50 - 10b - b = 17 50 - 11b = 17 50 - 17 = 11b 33 = 11b b = 3
Вариант 1:for b in range(1, 100): if (2 * 5 - b - b) * 5 - b == 17: print(b)
Вариант 2:def f(x,b,p): if p=='1': return x-b return x*5 for b in range(1, 100): x = 2 prog = '21121' for p in prog: x = f(x,b,p) if x == 17: print(b)
У исполнителя Дельта две команды, которым присвоены номера:
1. прибавить 5
2. умножить на d
(d – неизвестное целое число; d < 0)
Выполняя первую из них, Дельта увеличивает число на экране на 5, а выполняя вторую, умножает это число на d. Программа для исполнителя Дельта – это последовательность номеров команд. Известно, что программа 12211 переводит число 2 в число 38. Определите значение d.
-2
(2 + 5) * d * d + 5 + 5 = 38 7 * d2 = 28 d2 = 4, отсюда d = 2 или d = -2 т.к. по условию задачи d < 0, то Ответ: -2
Вариант 1:
for d in range(-100, 0): if (2 + 5) * d * d + 5 + 5 == 38: print(d)
Вариант 2:
def f(x,d,p): if p=='1': return x+5 return x*d for d in range(-100, 0): x = 2 prog = '12211' for p in prog: x = f(x,d,p) if x == 38: print(d)
У исполнителя Дельта две команды, которым присвоены номера:
1. прибавить 4
2. разделить на d
(d – неизвестное целое число; d < 0)
Выполняя первую из них, Дельта увеличивает число на экране на 4, а выполняя вторую, делит это число на d. Программа для исполнителя Дельта – это последовательность номеров команд.Известно, что программа 12211 переводит число 86 в число 18. Определите значение d.
-3
Решим задачу от отбратного - получим из 18 число 86, выполнив программу наоборот: "11221" и заменив команду 1 на команду "вычти 4", а команду 2 на команду "умножь на d": (18 - 4 - 4) * d * d - 4 = 86 10 * d2 = 90 d2 = 9 d = 3 или d = -3 Ответ: -3
Вариант 1:
for d in range(-100, 0): if (86 + 4) / d / d + 4 + 4 == 18: print(d)
Вариант 2:
def f(x,d,p): if p=='1': return x+4 return x/d for d in range(-100, 0): x = 86 prog = '12211' for p in prog: x = f(x,d,p) if x == 18: print(d)
У исполнителя Дельта две команды, которым присвоены номера:
1. извлечь квадратный корень
2. умножить на b
(b – неизвестное натуральное число)
Выполняя первую из них, Дельта извлекает корень квадратный из числа на экране, а выполняя вторую, умножает это число на b. Программа для исполнителя Дельта – это последовательность номеров команд. Известно, что программа 11221 переводит число 256 в число 6. Определите значение b.
3
Решим задачу от обратного - получим из 6 число 256, выполнив программу наоборот: "12211" и, заменив команду 1 на команду "возведи в квадрат", а команду 2 на команду "раздели на b": (6 * 6 / b / b)4 = 256 36 / b2 = 4 b2 = 9 b = 3 или b = -3 Ответ: 3
Вариант 1:
for b in range(1, 100): if ((256 ** .5) ** .5 * b * b) ** .5 == 6: print(b)
Вариант 2:
def f(x,b,p): if p=='1': return x**.5 return x*b for b in range(1,100): x = 256 prog = '11221' for p in prog: x = f(x,b,p) if x == 6: print(b)
У исполнителя Квадратор две команды. которым присвоены номера:
1. возведи в квадрат
2. прибавь 3
Первая из них возводит число на экране во вторую степень, вторая увеличивает его на 3.
Составьте алгоритм получения из числа 1 числа 25, содержащий не более 5 команд. В ответе запишите только номера команд.
21222
Решим задачу от обратного - получим из 25 число 1, и, заменив команду 1 на команду "извлеки квадратный корень", а команду 2 на команду "вычти 3": извлекаем корень из 25, получим 5 вычитаем 3, получим 2 вычитаем 3, получим -1 дальше решать смысла нет, т.к. можно применять только команду вычитания (корня из отрицательного числа НЕТ) вычитаем 3 из 25, получим 22 (2) вычитаем 3 и3 22, получим 19 (2) вычитаем 3 из 19, получим 16 (2) находим корень из 16, получим 4 (1) вычитаем 3 из 4, получим 1 (2) т.к. мы решали задачу от обратного, то записываем обратный порядок команд: 21222
def f(x, y, p): if len(p) > 5: return if x == y: print(p); return f(x**2, y, p+'1') f(x+3, y, p+'2') f(1, 25, '')
У исполнителя Квадратор две команды, которым присвоены номера:
1. раздели на 3
2. возведи в квадрат
Первая из них уменьшает число на экране в 3 раза, вторая возводит число в квадрат.
Исполнитель работает только с натуральными числами. Составьте алгоритм получения из числа 18 числа 16, содержащий не более 4 команд. В ответе запишите только номера команд.
1122
разделим 18 на 3, получим 6 (1) разделим 6 на 3, получим 2 (1) найдём квадрат числа 2, получим 4 (2) найдём квадрат числа 4, получим 16 (2) Ответ: 1122
def f(x, y, p): if len(p) > 4: return if x == y: print(p); return f(x/3, y, p+'1') f(x**2, y, p+'2') f(18, 16, '')
1. приписать 2
2. разделить на 2
Первая из них приписывает к числу на экране справа цифру 2, вторая делит его на 2.
Составьте алгоритм получения из числа 14 числа 9, содержащий не более 5 команд. В ответе запишите только номера команд.
21222
разделим на 2 число 14, получим 7 (2) припишем 2 справа к числу 7, получим 72 (1) разделим на 2 число 72, получим 36 (2) разделим на 2 число 36, получим 18 (2) разделим на 2 число 18, получим 9 (2) Ответ: 21222
def f(x, y, p): if len(p) > 5: return if x == y: print(p); return f(x * 10 + 2, y, p+'1') f(x / 2, y, p+'2') f(14, 9, '')
У исполнителя Квадратор две команды, которым присвоены номера:
1. зачеркни справа
2. возведи в квадрат
Первая из них удаляет крайнюю правую цифру числа на экране, вторая — возводит число во вторую степень.
Составьте алгоритм получения из числа 5 числа 1, содержащий не более 5 команд. В ответе запишите только номера команд.
21221
зачеркнуть не можем, возводим в квадрат число 5, получим 25 (2) зачеркиваем цифру справа, получим 2 (1) возводим в квадрат число 2, получим 4 (2) возводим в квадрат число 4, получим 16 (2) зачеркиваем цифру справа, получим 1 (1) Ответ: 21221
def f(x, y, p): if len(p) > 5: return if x == y: print(p); return if x > 10: f(x//10, y, p+'1') f(x**2, y, p+'2') f(5, 1, '')
У исполнителя Вычислитель две команды, которым присвоены номера:
1. зачеркни слева
2. возведи в квадрат
Первая из них удаляет крайнюю левую цифру числа на экране, вторая — возводит число во вторую степень.
Составьте алгоритм получения из числа 8 числа 56, содержащий не более 5 команд. В ответе запишите только номера команд.
21221
возводим в квадрат число 8, получим 64 (2) зачеркиваем цифру слева, получим 4 (1) возводим в квадрат число 4, получим 16 (2) возводим в квадрат число 16, получим 256 (2) зачеркиваем цифру слева, получим 56 (1) Ответ: 21221
def f(x, y, p): if len(p) > 5: return if x == y: print(p); return if x > 10: f(int(str(x)[1:]), y, p+'1') f(x**2, y, p+'2') f(8, 56, '')
Апробация-2025
У исполнителя Вычислитель две команды, которым присвоены номера:
1. умножь на 3
2. вычти 2
Первая из них увеличивает число на экране в 3 раза, вторая уменьшает его на 2.
Составьте алгоритм получения из числа 3 числа 17, содержащий не более 5 команд. В ответе запишите только номера команд.
12122
Апробация-2025
У исполнителя Вычислитель две команды, которым присвоены номера:
1. умножь на 3
2. вычти 1
Первая из них увеличивает число на экране в 3 раза, вторая уменьшает его на 1.
Составьте алгоритм получения из числа 4 числа 29, содержащий не более 5 команд. В ответе запишите только номера команд.
12212