Задача к ЕГЭ по информатике на тему «исполнитель «чертежник»» №1

Исполнитель Ручка перемещается по координатной плоскости, оставляя след в виде линии. Ручка может выполнять команду сместиться на (a, b), где a и b — целые числа, которые перемещают «Ручка»из точки с координатами (x, y) в точку с координатами (x + a, y + b).

Цикл

   ПОВТОРИ число РАЗ

      последовательность команд

   КОНЕЦ ПОВТОРИ

Означает, что последовательность команд будет выполнена указанное число раз (число должно быть натуральным). Ручке был дан для исполнения следующий алгоритм:

НАЧАЛО

   сместиться на (-47, -19)

   ПОВТОРИТЬ N раз

      сместиться на (31, 9)

      сместиться на (a, b)

   КОНЕЦ

   сместиться на (82, -23)

КОНЕЦ

Определите минимальное натуральное значение N > 1, для которого найдутся такие значения чисел a и b, что после выполнения программы Ручка возвратится в исходную точку?

Решение руками

Составим 2 уравнения. Так как робот должен вернуться в исходную точку, то сумма всех его перемещений равна нулю:

− 47+ n(a+ 31)+ 82 = 0  по оси X

− 19+ n(9+ b)− 23 = 0  по оси Y

n(a +31) = − 35

n(9 +b) = 42

Теперь наша задача найти число на которое делится 42 и 35 нацело, так как числа a, b у нас целые. Такое число одно — это 7.

Решение программой

def find_min_n():
    for n in range(2, 100):
        if (-35 % n == 0) and (42 % n == 0):
            a = (-35 // n) - 31
            b = (42 // n) - 9
            x = -47 + n * (31 + a) + 82
            y = -19 + n * (9 + b) - 23
            if x == 0 and y == 0:
                return n
    return None

print(find_min_n())

Ответ: 7
Оцените статью
Я решу все!