Тема 6. Алгоритмы – определение результата

6.01 Определение результатов работы простейших алгоритмов управления исполнителями

Вспоминай формулы по каждой теме
Решай новые задачи каждый день
Вдумчиво разбирай решения
ШКОЛКОВО.
Готовиться с нами - ЛЕГКО!
Подтемы раздела алгоритмы – определение результата
Решаем задачу:

Ошибка.
Попробуйте повторить позже

Задача 1#63028

Исполнитель Черепаха действует на плоскости с декартовой системой координат. В начальный момент Черепаха находится в начале координат, её голова направлена вдоль положительного направления оси ординат, хвост опущен. При опущенном хвосте Черепаха оставляет на поле след в виде линии. В каждый конкретный момент известно положение исполнителя и направление его движения. У исполнителя существует три команды: Вперёд n (где n-целое число), вызывающая передвижение Черепахи на n единиц в том направлении, куда указывает её голова, Назад n (где n-целое число), вызывающая передвижение Черепахи на n единиц в обратном относительно положению головы направлении, и Направо m (где m– целое число), вызывающая изменение направления движения на m градусов по часовой стрелке. Запись Повтори k [Команда1 Команда2 … КомандаS] означает, что последовательность из S команд повторится k раз.

Черепахе был дан для исполнения следующий алгоритм:

Повтори R [ Вперёд 5 Направо 45 Назад 5 ]

Укажите значение числа R, при котором Черепаха впервые вернётся в начало координат.

Показать ответ и решение

Решение 1: Руками

PIC

Основываясь на алгоритме действий Черепахи, она перемещается по следующей траектории:

1. Она идёт вперед на 5 единиц (вдоль оси Y).

2. Затем поворачивает на 45 градусов вправо. Теперь её направление отклоняется от оси Y на 45 градусов.

3. Она идёт назад на 5 единиц, возвращаясь ближе к оси X, но не полностью возвращаясь к началу координат.

Этот цикл повторяется R раз. Чтобы Черепаха вернулась к началу координат, она должна сделать полный оборот (360 градусов) и вернуться к первоначальному направлению. Каждый цикл поворачивает Черепаху на 45 градусов вправо. Следовательно, для полного оборота ей потребуется повторить цикл 8 раз.

Ответ: число R, при котором Черепаха впервые вернётся в начало координат, равно 8.

Решение 2: Программно

В данной задаче необходимо определить, при каком значении параметра R  исполнитель Черепаха впервые возвращается в исходную точку (0,0)  . Для этого мы должны смоделировать поведение алгоритма для всех возможных значений R  и проверить, приводит ли выполнение последовательности команд к возвращению в начало координат. Идея решения заключается в переборе возможных значений R  : для каждого из них мы запускаем алгоритм Черепахи, затем проверяем её текущие координаты. Если они совпадают с (0,0)  , значит, мы нашли нужное значение R  и можем завершить работу. Для проверки используется округление значений координат, так как при вычислениях возникают погрешности чисел с плавающей точкой.

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() # Завершение работы (окно остаётся открытым)

Ответ: 8

Специальные программы

Все специальные программы

Программа
лояльности v2.0

Приглашай друзей в Школково и получай вознаграждение до 10%!

Крути рулетку
и выигрывай призы!

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

Бесплатное онлайн-обучение

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

Налоговые вычеты

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

Специальное предложение
для учителей

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

Вернём деньги за курс
за твою сотку на ЕГЭ

Сдать экзамен на сотку и получить обратно деньги за подготовку теперь вполне реально!

cyberpunkMouse
cyberpunkMouse
Рулетка
Вы можете получить скидку в рулетке!