Исполнитель Черепаха действует на плоскости с декартовой системой координат. В начальный момент Черепаха находится в начале координат, её голова направлена вдоль положительного направления оси ординат, хвост опущен. При опущенном хвосте Черепаха оставляет на поле след в виде линии. В каждый конкретный момент известно положение исполнителя и направление его движения. У исполнителя существует две команды: Вперёд (где
— целое число), вызывающая передвижение Черепахи на
единиц в том направлении, куда указывает её голова, и Направо
(где
— целое число), вызывающая изменение направления движения на
градусов по часовой стрелке.
Запись Повтори [Команда
Команда
…Команда
] означает, что последовательность из
команд повторится
раз.
Черепахе был дан для исполнения следующий алгоритм:
Повтори [Вперёд
Направо
].
Определите, сколько точек с целочисленными координатами будут находиться внутри области, ограниченной линией, заданной данным алгоритмом. Точки на линии учитывать не следует.
cnt = 0
for x in range(-100, 100):
for y in range(-100, 100):
if (y < 1/3**0.5 * x + 10) and (y < 20 - 1/3**0.5 * x):
if (x < 10 * 3**0.5) and (y > 1/3**0.5 * x - 10):
if (y > -1/3**0.5 * x) and (x > 0):
cnt += 1
print(cnt)
Решение через модуль turtle в Python
from turtle import * # Модуль для работы с исполнителем Черепаха
m = 20 # Масштаб
tracer(0)
pd()
left(90)
# Алгоритм
for i in range(10):
forward(10*m)
right(60)
pu()
# Проставление точек
for x in range(-25, 25):
for y in range(-20, 30):
goto(x*m, y*m)
dot(3)
done()
Вывод программы:
Необходимо посчитать количество точек внутри фигуры, их получилось