6.01 Определение результатов работы простейших алгоритмов управления исполнителями
Ошибка.
Попробуйте повторить позже
Исполнитель Черепаха действует на плоскости с декартовой системой координат. В начальный момент Черепаха находится в начале координат, её голова направлена вдоль положительного направления оси ординат, хвост опущен. При опущенном хвосте Черепаха оставляет на поле след в виде линии. В каждый конкретный момент известно положение исполнителя и направление его движения. У исполнителя существует три команды: Вперёд n (где n-целое число), вызывающая передвижение Черепахи на n единиц в том направлении, куда указывает её голова, Назад n (где n-целое число), вызывающая передвижение Черепахи на n единиц в обратном относительно положению головы направлении, и Направо m (где m– целое число), вызывающая изменение направления движения на m градусов по часовой стрелке. Запись Повтори k [Команда1 Команда2 … КомандаS] означает, что последовательность из S команд повторится k раз.
Черепахе был дан для исполнения следующий алгоритм:
Повтори R [ Вперёд 5 Направо 45 Назад 5 ]
Укажите значение числа R, при котором Черепаха впервые вернётся в начало координат.
Решение 1: Руками
Основываясь на алгоритме действий Черепахи, она перемещается по следующей траектории:
1. Она идёт вперед на 5 единиц (вдоль оси Y).
2. Затем поворачивает на 45 градусов вправо. Теперь её направление отклоняется от оси Y на 45 градусов.
3. Она идёт назад на 5 единиц, возвращаясь ближе к оси X, но не полностью возвращаясь к началу координат.
Этот цикл повторяется R раз. Чтобы Черепаха вернулась к началу координат, она должна сделать полный оборот (360 градусов) и вернуться к первоначальному направлению. Каждый цикл поворачивает Черепаху на 45 градусов вправо. Следовательно, для полного оборота ей потребуется повторить цикл 8 раз.
Ответ: число R, при котором Черепаха впервые вернётся в начало координат, равно 8.
Решение 2: Программно
В данной задаче необходимо определить, при каком значении параметра исполнитель Черепаха впервые
возвращается в исходную точку
. Для этого мы должны смоделировать поведение алгоритма для всех
возможных значений
и проверить, приводит ли выполнение последовательности команд к возвращению
в начало координат. Идея решения заключается в переборе возможных значений
: для каждого из
них мы запускаем алгоритм Черепахи, затем проверяем её текущие координаты. Если они совпадают с
, значит, мы нашли нужное значение
и можем завершить работу. Для проверки используется
округление значений координат, так как при вычислениях возникают погрешности чисел с плавающей
точкой.
from turtle import * # Модуль для работы с исполнителем Черепаха tracer() # Включаем пошаговую отрисовку # Перебор возможных значений R от 1 до 19 for r in range(1,20): f = 0 # Флаг для выхода из цикла home() # Возвращаем Черепаху в начало координат (0,0) for i in range(r): # Повторяем r раз forward(5) # Двигаемся вперёд на 5 right(45) # Поворот направо на 45° backward(5) # Двигаемся назад на 5 x = xcor() # Получаем текущую координату по X y = ycor() # Получаем текущую координату по Y if round(x) == 0.0 and round(y) == 0.0: # Проверяем, вернулась ли Черепаха в (0,0) f = 1 # Устанавливаем флаг print(r) # Выводим значение R break # Прерываем цикл if f == 1: break # Выход из внешнего цикла, если условие выполнено done() # Завершение работы (окно остаётся открытым)
Специальные программы

Программа
лояльности v2.0
Приглашай друзей в Школково и получай вознаграждение до 10%!

Крути рулетку
и выигрывай призы!
Крути рулетку и покупай курсы со скидкой, которая привязывается к вашему аккаунту.

Бесплатное онлайн-обучение
Для школьников из приграничных территорий России, проживающих в ДНР, ЛНР, Херсонской, Запорожской, Белгородской, Курской, Брянской областях и Крыму.

Налоговые вычеты
Узнай, как получить налоговый вычет при оплате обучения в «Школково».

Специальное предложение
для учителей
Бесплатный доступ к любому курсу подготовки к ЕГЭ, ОГЭ и олимпиадам от «Школково». Мы с вами делаем общее и важное дело, а потому для нас очень значимо быть чем-то полезными для учителей по всей России!

Вернём деньги за курс
за твою сотку на ЕГЭ
Сдать экзамен на сотку и получить обратно деньги за подготовку теперь вполне реально!