СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Разбор задания ОГЭ по информатике. Март 2025. Простой линейный алгоритм для формального исполнителя. Получение большего числа из меньшего

Категория: Информатика

Нажмите, чтобы узнать подробности

Тип 5 № 18289

У исполнителя Делитель две команды, которым присвоены номера:

1. раздели на 2

2.  вычти 1

Первая из них уменьшает число на экране в 2 раза, вторая уменьшает его на 1. Исполнитель работает только с натуральными числами. Составьте алгоритм получения из чиcла 65 числа 4, содержащий не более 5 команд. В ответе запишите только номера команд.

(Например, 12112 – это алгоритм:

раздели на 2

вычти 1

раздели на 2

раздели на 2

вычти 1,

который преобразует число 42 в число 4.)

Если таких алгоритмов более одного, то запишите любой из них.

 

Решение.

Поскольку Делитель работает только с натуральными числами и число 65  — нечетное. Для того, чтобы получить четное число используем команду 2 (вычесть 1). Из числа 64 число 4 можно получить, выполнив команду 1 четыре раза, следовательно, из числа 65 можно получить число 4 последовательностью команд 21111.

 

Ответ: 21111.

 

Приведем другое решение на языке Python.

 

def f(flag, x): if flag == 1: return x / 2 if flag == 2: return x - 1 x = 65 for flag in range(1, 3): for flag1 in range(1, 3): for flag2 in range(1, 3): for flag3 in range(1, 3): for flag4 in range(1, 3): if f(flag, f(flag1, f(flag2, f(flag3, f(flag4, x))))) == 4: print(flag4, flag3, flag2, flag1, flag)

Просмотр содержимого документа
«Разбор задания ОГЭ по информатике. Март 2025. Простой линейный алгоритм для формального исполнителя. Получение большего числа из меньшего»

Тип 5 № 18289

У исполнителя Делитель две команды, которым присвоены номера:

1. раздели на 2

2.  вычти 1

Первая из них уменьшает число на экране в 2 раза, вторая уменьшает его на 1. Исполнитель работает только с натуральными числами. Составьте алгоритм получения из чиcла 65 числа 4, содержащий не более 5 команд. В ответе запишите только номера команд.

(Например, 12112 – это алгоритм:

раздели на 2

вычти 1

раздели на 2

раздели на 2

вычти 1,

который преобразует число 42 в число 4.)

Если таких алгоритмов более одного, то запишите любой из них.

Решение.

Поскольку Делитель работает только с натуральными числами и число 65  — нечетное. Для того, чтобы получить четное число используем команду 2 (вычесть 1). Из числа 64 число 4 можно получить, выполнив команду 1 четыре раза, следовательно, из числа 65 можно получить число 4 последовательностью команд 21111.

 

Ответ: 21111.

 

Приведем другое решение на языке Python.

def f(flag, x): if flag == 1: return x / 2 if flag == 2: return x - 1 x = 65 for flag in range(1, 3): for flag1 in range(1, 3): for flag2 in range(1, 3): for flag3 in range(1, 3): for flag4 in range(1, 3): if f(flag, f(flag1, f(flag2, f(flag3, f(flag4, x))))) == 4: print(flag4, flag3, flag2, flag1, flag)