Задание 6. Информатика. ЕГЭ. Досрочный экзамен. 08.04.2025

Просмотры: 1009
Изменено: 8 апреля 2025

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

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

Направо 30 Повтори 3 [Направо 150 Вперёд 6 Направо 30 Вперёд 12]

Определите, сколько точек с целочисленными координатами будут находиться внутри области, которая ограничена линией, заданной алгоритмом. Точки на линии учитывать не следует.

Решение:

Python


from turtle import *

tracer(0)
screensize(2000, 2000)
lt(90)
k = 20

up()
for x in range(-10, 6):
    for y in range(-20, 6):
        goto(x * k, y * k)
        dot(3, 'red') if x * y % 5 == 0 else dot(2, 'green')

goto(0, 0)
down()
rt(30)

for _ in range(3):
    rt(150)
    fd(6 * k)
    rt(30)
    fd(12 * k)

ht()
update()
done()

Рисунок, который получается после выполнения программы:

Черепаха нарисовала параллелограмм, две стороны которого параллельны оси ординат, две другие наклонены к оси абсцисс под углом \(60^\circ\) и проходящие через начало координат \((0, \, 0)\) и точку \((0, \, -6)\). Уравнение этих прямых \(y = \sqrt{3} x\) и \(y = \sqrt{3} x - 6.\) Понятно, что кроме указанных точек, никакие другие с целочисленными координатами не будут лежать на этих прямых. Из рисунка видно, что внутри параллелограмма находятся \(5\) столбцов с точками по \(6\) в каждом. Всего \(5 \cdot 6 = 30\) точек. Можно проверить это программно:


print(sum(-6 < x < 0 and 3 ** 0.5 * x - 6 < y < 3 ** 0.5 * x for x in range(-10, 10) for y in range(-17, 0)))

Ответ: \(30\)