Задание 5. Анализ простых алгоритмов для конкретного исполнителя с фиксированным набором команд
Решаем вместе
Пример 1
У исполнителя Альфа две команды, которым присвоены номера:
1. прибавь 1;
2. умножь на b
(b — неизвестное натуральное число; b ≥ 2).
Выполняя первую из них, Альфа увеличивает число на экране на 1, а выполняя вторую, умножает это число на b. Программа для исполнителя Альфа — это последовательность номеров команд. Известно, что программа 11211 переводит число 9 в число 129. Определите значение b.
Ответ: 11
Решение
for b in range(2, 100):
if (9 + 1 + 1) * b + 1 + 1 == 123:
print(b)
Самостоятельная работа
У исполнителя Альфа две команды, которым присвоены номера:
1. прибавь 2;
2. умножь на b
(b — неизвестное натуральное число; b ≥ 2).
Выполняя первую из них, Альфа увеличивает число на экране на 2, а выполняя вторую, умножает это число на b. Программа для исполнителя Альфа — это последовательность номеров команд. Известно, что программа 12111 переводит число 6 в число 70. Определите значение b.
Ответ: 8
Пример 2
У исполнителя Сатурн две команды, которым присвоены номера:
1. возведи в квадрат
2. раздели на d
(d – неизвестное натуральное число; d ≥ 2)
Выполняя первую из них, Сатурн возводит число на экране в квадрат, а выполняя вторую
– делит это число на d.
Программа для исполнителя Сатурн – это последовательность номеров команд.
Известно, что программа 11211 переводит число 2 в число 256. Определите значение d.
Ответ: 4
Решение
for d in range(2, 100):
if (((2**2)**2 / d)**2)**2 == 256:
print(d)
break
Самостоятельная работа
У исполнителя Сатурн две команды, которым присвоены номера:
1. прибавить 4
2. умножь на d
(d – неизвестное натуральное число; d ≥ 2)
Выполняя первую из них, Сатурн возводит число на экране в квадрат, а выполняя вторую
– делит это число на d.
Программа для исполнителя Сатурн – это последовательность номеров команд.
Известно, что программа 12211 переводит число 4 в число 108. Определите значение d.
Ответ: 5
Пример 3
У исполнителя Делитель две команды, которым присвоены номера:
1. раздели на 2
2. прибавь 1
Первая из них уменьшает число на экране в 2 раза, вторая увеличивает его на 1.
Исполнитель работает только с натуральными числами.
Составьте алгоритм получения из числа 89 числа 24, содержащий не более
5 команд. В ответе запишите только номера команд.
Если таких алгоритмов более одного, то запишите любой из них.
Ответ: 21212
Решение
def f(p, x):
if p == 1:
return x // 2
if p == 2:
return x + 1
x = 89
for p1 in range(1, 3):
for p2 in range(1, 3):
for p3 in range(1, 3):
for p4 in range(1, 3):
for p5 in range(1, 3):
if f(p5, f(p4, f(p3, f(p2, f(p1, x))))) == 24:
print(p1, p2, p3, p4, p5)
Самостоятельная работ
У исполнителя Квадратор две команды, которым присвоены номера:
1. возведи в квадрат
2. вычти 4
Первая из них возводит число на экране во вторую степень, вторая уменьшает число на 4.
Исполнитель работает только с натуральными числами.
Составьте алгоритм получения из числа 2 числа 64, содержащий не более пяти команд. В ответе запишите только номера команд.
Если таких алгоритмов более одного, то запишите любой из них.
Ответ: 11221
Пример 4
У исполнителя Конструктор две команды, которым присвоены номера:
1. приписать 2
2. разделить на 2
Первая из них приписывает к числу на экране справа цифру 2, вторая делит его на 2.
Составьте алгоритм получения из числа 14 числа 9, содержащий не более 5 команд. В ответе запишите только номера команд.
Если таких алгоритмов более одного, запишите любой из них.
Ответ: 21222
def f(p, x):
if p == 1:
a = int(str(x) + "2")
return a
if p == 2:
return x // 2
x = 14
for p1 in range(1, 3):
for p2 in range(1, 3):
for p3 in range(1, 3):
for p4 in range(1, 3):
for p5 in range(1, 3):
if f(p5, f(p4, f(p3, f(p2, f(p1, x))))) == 9:
print(p1, p2, p3, p4, p5)
Самостоятельная работа
У исполнителя Квадратор две команды, которым присвоены номера:
1. зачеркни справа
2. возведи в квадрат
Первая из них удаляет крайнюю правую цифру числа на экране, вторая — возводит число во вторую степень.
Составьте алгоритм получения из числа 5 числа 1, содержащий не более 5 команд. В ответе запишите только номера команд.
Ответ: 21221
Домашнее задание
Перейти на сайт ФИПИ "Открытый банк заданией ОГЭ"
2. Раскрыть вкладку "ПОДБОР ЗАДАНИЙ" , в таблице выбрать вариант задания и ввести этот номер в окно "Номер задания"
3. Решить задание и проверить решение на сайте
Задания открытого банка по информатике
4B284F |
AABEF0 |
30AeF8 |
E09C02 |
4A5F46 |
C80CF5 |
BCC106 |
E8EE0A |
7BB342 |
C88FF3 |
21BF0A |
39D20C |
D11441 |
EAFBF9 |
C0BD0A |
420977 |
06E3F2 |
3415F4 |
EE8C07 |
4ABA78 |
B04AF3 |
3EDEFB |
||