решай.ai · шпаргалка

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

ЕГЭ Информатика

Как выглядит

Стандартная формулировка описывает исполнителя Черепаха: он стоит в начале координат, смотрит вдоль оси OyOy, умеет выполнять команды «Вперёд nn» (сдвиг на nn единиц в текущем направлении) и «Направо mm» (поворот по часовой стрелке на mm градусов), а конструкция «Повтори kk [...]» повторяет блок команд kk раз. Дальше приводится конкретная программа, и требуется определить число точек с целочисленными координатами внутри области, ограниченной построенной линией, или внутри и на границе одновременно. Задание относится к базовому уровню сложности, оценивается в 1 первичный балл, на его реше …

Что нужно знать

  • Направление движения задаётся углом θ\theta относительно оси OxOx; поворот «Направо mm» уменьшает угол на mm: θnew=θold−m\theta_{new} = \theta_{old} - m; поворот «Налево mm» увеличивает угол на mm.
  • Переход к смещению по осям при движении «Вперёд nn» в направлении θ\theta: Δx=ncos⁡θ, Δy=nsin⁡θ\Delta x = n\cos\theta,\ \Delta y = n\sin\theta.
  • Ломаная линия из цикла «Повтори kk» замкнётся в правильный (возможно, звёздчатый) многоугольник только тогда, когда суммарный угол поворота кратен 360°360°: k⋅m=360°⋅dk\cdot m = 360°\cdot d для некоторого целого dd.
  • Если d≥2d\ge 2, вычерчивается звёздчатый многоугольник вида {k/d}\{k/d\}; если d=1d=1 — обычный выпуклый правильный kk-угольник.
  • Площадь многоугольника по координатам вершин (формула «шнурков», формула Гаусса): S=12∣∑i=1n(xiyi+1−xi+1yi)∣S=\dfrac12\left|\sum_{i=1}^{n}\left(x_i y_{i+1}-x_{i+1} y_i\right)\right|.
  • Теорема Пика для многоугольника с вершинами в целочисленных точках: S=I+B2−1S = I + \dfrac{B}{2} - 1, где II — число внутренних целых точек, BB — число целых точек на границе.
  • Для прямоугольника со сторонами aa и bb (целые, стороны параллельны осям): число целых точек строго внутри равно (a−1)(b−1)(a-1)(b-1); число целых точек внутри и на границе равно (a+1)(b+1)(a+1)(b+1).
  • Число целых точек на отрезке между целыми точками (x1,y1)(x_1,y_1) и (x2,y2)(x_2,y_2), включая концы, равно gcd⁡(∣x2−x1∣,∣y2−y1∣)+1\gcd(|x_2-x_1|,|y_2-y_1|)+1.

Алгоритм

  1. Зафиксировать стартовую точку (0,0)(0,0) и стартовое направление (обычно вдоль OyOy, угол 90°90°).
  2. Пошагово применить команды «Вперёд»/«Направо» (или «Налево»), вычисляя координаты каждой новой точки.
  3. Проверить, не повторяется ли контур раньше окончания цикла: сравнить текущее положение и направление с начальными.
  4. Определить тип получившейся фигуры (прямоугольник, правильный или звёздчатый многоугольник) и выписать координаты всех различных вершин.
  5. Выбрать метод подсчёта: готовая формула для прямоугольника, теорема Пика для многоугольника с целыми вершинами, либо перебор по столбцам, если вершины нецелые.
  6. Внимательно прочитать вопрос: считать нужно точки строго внутри, или внутри и на границе.
  7. Выполнить вычисления и проверить результат прикидкой — сравнить полученное число с приближённой площадью фигуры (они должны быть близки).

Ловушки

  • Путают направление поворота: «Направо» — по часовой стрелке (угол уменьшается), «Налево» — против часовой (угол увеличивается).
  • Считают, что «Повтори kk» всегда рисует простой kk-угольник, не проверяя, не замыкается ли контур раньше, и ошибаются с числом реально различных вершин.
  • Применяют теорему Пика к фигуре, у которой хотя бы одна вершина не является целочисленной точкой.
  • Путают «строго внутри» и «внутри и на границе»: используют формулу (a−1)(b−1)(a-1)(b-1) там, где нужно (a+1)(b+1)(a+1)(b+1), и наоборот.
  • Ошибаются в подсчёте точек на стороне отрезка, забывая использовать gcd⁡\gcd длин проекций.
  • Допускают арифметические промахи при переборе по столбцам — пропускают строку или дважды учитывают границу.
  • Не сверяют ответ прикидкой площади фигуры, из-за чего пропускают явно завышенный или заниженный результат.
reshay.ai/ege/informatika/zadanie-6 — задачи с разборами и тренажёр

Полный гайд и задачи задания 6 →