Задание 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\)