К другим статьям

Расчёт числа π в Python: как отработать циклы и точность для ЕГЭ

18

Поделиться
Фон

Делимся разбором самых сложных заданий в Телеграм канале

Перейти в ТГ

Циклы и точность в ЕГЭ по информатике: как работать с float и epsilon

изображение

** изображение создано или обработано с помощью ИИ.

Вы готовитесь к ЕГЭ по информатике. Один из типов задач, который встречается в теме алгоритмизации, — вычисление приближенных значений констант, например числа π. Внешне это напоминает задачу из математики, но проверяют здесь не знание свойств π или истории его открытия.

Суть экзаменационного задания в другом: нужно спроектировать вычислительный процесс, корректно выбрать тип данных для переменных и настроить условие выхода из цикла. Результат должен быть получен с заявленной точностью.

Часто возникает вопрос: можно ли взять π = 3,14? Отвечаем: это допустимо только в тех задачах, где точность заведомо не критична. Однако в заданиях ЕГЭ обычно закладывается требование к числу верных знаков, и тогда 3,14 — недостаточно точное приближение.

Напомним: π — иррациональное число. Его десятичное представление бесконечно и не периодично. Любой компьютер работает с приближением. Например, значение 3.141592653589793 в языке Python — это не математическое π, а округленное число формата float с ограниченной разрядностью.

Для успешного решения на экзамене важно не запоминать множество знаков π, а понимать, как накапливается погрешность при многократных арифметических действиях. Также стоит видеть разницу между математической формулой и её программной реализацией. Изящная формула может давать медленный код, накапливать ошибку или вести себя непредсказуемо при определенных входных данных.

Задачи на вычисление π полезны для подготовки: они компактно объединяют отработку циклов, знакопеременных сумм, условий остановки итераций и проверки результата на соответствие заданной точности. Это своего рода диагностический тренажер базовых навыков алгоритмизации.

Прозрачность вашего решения для проверяющего обеспечивается четкой фиксацией:

  1. выбранного метода приближения (например, ряд Лейбница или другой);
  1. типа данных и обоснования его достаточной разрядности;
  1. условия завершения цикла (сравнение разности соседних приближений с заданным ε).

Безопасность вашего результата — в контроле погрешности: убедитесь, что после остановки цикла последующие итерации не изменят ответ в пределах требуемой точности.

Фиксируйте промежуточные вычисления в черновике — это элемент отчетности, который поможет проверить себя и, при необходимости, объяснить ход мыслей апелляционной комиссии.

Что именно проверяет такая задача

изображение

** изображение создано или обработано с помощью ИИ.

В экзаменационных задачах по программированию проверяется не знание числа π, а умение построить работающий алгоритм. Само π оказывается удобным учебным примером, потому что его нельзя записать конечной десятичной дробью — это автоматически вынуждает обсуждать приближённые вычисления и неизбежную погрешность.

Вам понадобится уверенно работать с вещественными числами, организовывать цикл с заранее неизвестным числом шагов, накапливать сумму в переменной, сравнивать текущую погрешность с заданным порогом ε и аккуратно выводить результат. На бумаге всё выглядит просто, но в коде поджидают типичные ловушки.

Если забыть увеличить счётчик, цикл станет бесконечным — программа зависнет, и проверяющий не получит ответа. Если перепутать знак очередного слагаемого, сумма начнёт расходиться в сторону от истинного значения π. А если сравнивать два вещественных числа на точное равенство, условие остановится в случайный момент или не сработает вовсе.

Чтобы избежать этого, держите в голове три вопроса:

  1. Первый: что именно мы вычисляем? Приближение самого π через сумму ряда или используем готовую константу для других расчётов — это принципиально разные сценарии, и их нельзя путать.
  1. Второй: когда нужно остановить цикл? Правильный ответ — когда модуль очередного приращения суммы становится меньше заданного ε. Сравнивать float на равенство нельзя ни в коем случае.
  1. Третий: как проверить, что результат похож на правду? Он должен лежать между 3.1 и 3.2 хотя бы при грубых приближениях и не уезжать в сторону при повышении точности.

В ЕГЭ от вас не требуется писать высокоэффективную математическую библиотеку или рекордно быстрое приближение π. Нужен понятный, работающий алгоритм с явным условием выхода из цикла.

Если в условии сказано вычислить приближённое значение π, выбирайте простую знакочередующуюся формулу, даже если она сходится медленно, и обязательно укажите её в комментарии — это часть отчётности перед проверяющим, которая показывает, что вы действуете осознанно.

Если в условии сказано использовать π для расчётов (например, площади круга), берите готовую константу math.pi в Python, но только если это прямо разрешено. Самодельное приближение здесь будет лишним источником погрешности.

Главное различие, которое влияет на баллы: расчёт π — вы строите приближение с нуля и контролируете каждый шаг; использование π — вы берёте готовое значение как инструмент.

Смешение этих двух сценариев — частая причина, почему внешне правильный код получает ноль по критерию соответствия условию. Прозрачность решения, осмысленные комментарии и точное следование тому, что спросили, важнее математической изящества.

Формула Лейбница: медленно, зато прозрачно

изображение

** изображение создано или обработано с помощью ИИ.

Ряд Лейбница — частый учебный пример для ЕГЭ: π/4 = 1 − 1/3 + 1/5 − 1/7 + … Он медленный, но нагляден для отработки циклов.

Ключевой момент, где теряют баллы: вы суммируете не π, а π/4. После цикла сумму обязательно умножают на 4. Забыли — получили ≈0,785 и недоумение перед экраном.

Знак удобно менять через отдельную переменную sign: начали с 1, после каждого шага умножили на −1. Это надёжнее, чем городить условия.

Если в задаче есть точность ε, остановка цикла происходит, когда очередное слагаемое (по модулю) стало меньше ε. Для ряда Лейбница этого достаточно — проверяющий именно такое сравнение и ждёт.

Добавьте в код комментарий про умножение на 4. Это элемент отчётности, который снимет вопросы при проверке. Производительность ряда не оценивается, важна только правильная логика.

Python-код: коротко, но без магии

изображение

** изображение создано или обработано с помощью ИИ.

Первый пример — цикл с фиксированным числом шагов. Переменная n задаёт количество слагаемых, s накапливает сумму, sign переключает знак. После цикла результат умножается на 4. В Python отступы имеют значение — это не формальность, а часть синтаксиса. Ошибка здесь чаще всего возникает из-за невнимательности, а не из-за непонимания математики.

Второй пример — остановка по малому слагаемому. Цикл while проверяет модуль term. Пока очередной вклад больше заданного eps, программа продолжает. Число итераций заранее не известно, алгоритм сам решает, когда остановиться.

Важная техническая деталь: term нужно определить до цикла с каким-то начальным значением (например, 1.0). Без этого Python выдаст ошибку о неопределённой переменной. На экзамене такая мелочь может стоить времени на отладку.

Проверять результат полезно через сравнение с math.pi, но только не на точное равенство. Вещественные числа в двоичной системе не позволяют этого делать надёжно.

Вместо этого вычислите модуль разности и сравните его с допустимой погрешностью. Этот приём стоит использовать при отладке, если экзаменационная среда позволяет запускать код с дополнительными проверками.

В боевом решении для ЕГЭ лишние импорты и сравнения лучше убрать или закомментировать. Чистый код, который решает ровно то, что требует условие, самая надёжная стратегия.

Метод Монте-Карло: красиво, но с характером

изображение

** изображение создано или обработано с помощью ИИ.

В квадрате со стороной 1 лежит четверть круга радиусом 1. Площадь квадрата — единица, площадь четверти круга — π/4. Если случайно кидать точки внутрь квадрата, доля тех, что попали под дугу (условие x² + y² ≤ 1), будет приблизительно равна π/4. Умножив на 4, получаем оценку π.

Алгоритм: генерируете пары случайных чисел от 0 до 1, проверяете условие, считаете попадания, делите на общее число точек, умножаете на 4.

Главная особенность метода — недетерминированность. При каждом запуске результат немного отличается из-за случайности. Для экзамена это минус, если условие требует стабильного, воспроизводимого ответа. Проверяющий не сможет повторить ваш результат в точности, а значит, формальные критерии рискуют не сработать.

Кроме того, метод требует много итераций для приемлемой точности. Миллион точек — и ноутбук задумчиво шумит, а вы получаете лишь несколько верных знаков. На экзамене по информатике это не запрещено, но не оптимально.

Поэтому метод Монте-Карло лучше использовать как учебную демонстрацию или дополнительный способ самопроверки. Для основного решения, если условие явно не требует случайного моделирования, выбирайте детерминированный алгоритм — например, тот же ряд Лейбница с остановкой по малому слагаемому. Или готовую константу math.pi, если задание разрешает.

Самый ценный урок здесь не про π, а про чтение условия. Красивый метод не всегда подходит для конкретной задачи. Игнорирование этого правила — одна из частых причин потери баллов.

Ошибки, которые крадут баллы

изображение

** изображение создано или обработано с помощью ИИ.

Самое обидное в таких потерях — их предсказуемость.

Первая типовая ошибка связана с границами цикла. Если вы используете range(n), индексы i идут от 0 до n−1, и знаменатель должен быть 2*i + 1. Если вы начнёте i с единицы, формула сломается — и программа выдаст неверное приближение без видимых ошибок в синтаксисе.

Вторая ошибка — целочисленное мышление. В Python деление через / всегда даёт вещественное число, и это удобно. Но если вы пишете на C++ или Pascal, деление целых чисел может отбросить дробную часть, и вы этого не заметите. На экзамене важно помнить о типе данных там, где это имеет значение.

Третья ошибка касается цикла с неизвестным числом шагов. Условие остановки должно гарантировать, что переменные внутри цикла меняются. Иначе программа зависает. На ЕГЭ, где время ограничено, зависший код — это потерянные минуты и нервы.

Четвёртая ошибка — избыточное округление внутри цикла. Каждое округление вносит дополнительную погрешность, которая накапливается. Округлять имеет смысл только конечный результат и только если это прямо требуется в условии.

Пятая ошибка — доверие к любому напечатанному числу. Программа может быть синтаксически верной, но давать 3.14 вместо 3.1416 из-за ошибки в знаменателе или знаке. Простая проверка: сравните первые несколько цифр вашего результата с известным приближением π = 3.141592653589793. Это быстро отсекает грубые промахи.

Перед тем как сдать решение, стоит пробежаться по контрольным точкам:

  1. Формула в коде должна соответствовать выбранному методу без пропусков.
  1. Счётчик цикла или индекс должны меняться на каждом шаге.
  1. Знак (если используется знакочередующийся ряд) обязан переключаться строго один раз за итерацию.
  1. Условие остановки должно проверять модуль разности или модуль очередного слагаемого, но никогда точное равенство.
  1. И вывод должен быть в том формате, который указан в задании.

Эти правила не делают код красивее, но делают его безопаснее. А на экзамене устойчивость к собственным ошибкам ценнее виртуозности.

Хотите перестать бояться циклов с неизвестным числом шагов и погрешностей float? В «ЕГЭLAND» мы отрабатываем алгоритмическую гигиену: учим писать устойчивые циклы, сравнивать вещественные числа через ε и избегать ловушек в заданиях 17, 25 и 27. Заходи на курс подготовки к ЕГЭ по информатике.

Как тренироваться, чтобы был эффект

изображение

** изображение создано или обработано с помощью ИИ.

Начинайте с ручного счёта на трёх или четырёх шагах, затем пишите код и проверяйте на малых значениях. Не ставьте сразу огромное число итераций — если формула ошибочна, это лишь удлинит ожидание неверного ответа.

Ведите простой блокнот ошибок: что перепутали, почему, как проверить. Это станет вашей личной картой уязвимых мест.

Полезно написать один алгоритм двумя способами (for и while) — так глубже понимаешь цикл. Для знака можно использовать (-1)**i, но отдельная переменная sign читается легче.

Перед экзаменом соберите шаблоны-каркасы: сумма ряда, поиск минимума, перебор делителей. Расчёт π ложится в первый из них.

Не делайте из числа монстра. Это не секретный босс, а рядовая проверка циклов, типов данных и погрешности. Увидели условие — действуйте по порядку: формула, переменные, условие останова, проверка первых цифр.

Если паника — напомните себе: миллиард знаков не нужен, нужен аккуратный алгоритм.

Фон

Хочешь начать готовиться, но остались вопросы?

Заполни форму, и мы подробно объясним, как устроена подготовка к ЕГЭ и ОГЭ в ЕГЭLAND

Саша Филатов

    Дополнительная скидка 500 линия не вечна!

    Успей воспользоваться промокодом ЛЕТО с 6 по 15 июля и начни свой путь к 80+ и отлично на экзамене!

    Скидка на 8 марта