Найти в Дзене

Задача 26. Две окружности

Иногда бывают задачи, решение которых укладывается в "считал, вывел", давайте рассмотрим одну из таких. Задача на геометрию, и, по классике, необходимо проверить пересекаются ли фигуры (в данном случае окружности). Давайте нарисуем и посмотрим, что же получается: Итак, если есть точка пересечения двух окружностей, то мы можем построить треугольник, соединив её с центрами этих окружностей. И сторонами этого треугольника будут два радиуса окружностей и расстояние между центрами (L). Если точки пересечения нет, тогда такой треугольник построить нельзя. И действительно, по правилу треугольника получается, что L больше суммы радиусов. Расстояние между центрами, зная их координаты, легко найти с помощью теоремы Пифагора. Тогда получается такое условие: В очередной раз напомню, что можно (и нужно) обе части этого неравенства возвести в квадрат и избавиться от работы с вещественными числами. Кажется, что всё, но почему же тогда так много ошибок в решении этой задачи? Оказывается, что необязате

Иногда бывают задачи, решение которых укладывается в "считал, вывел", давайте рассмотрим одну из таких.

Условие задачи с сайта acmp.ru
Условие задачи с сайта acmp.ru

Задача на геометрию, и, по классике, необходимо проверить пересекаются ли фигуры (в данном случае окружности).

Давайте нарисуем и посмотрим, что же получается:

Две возможные ситуации расположения окружностей относительно друг друга
Две возможные ситуации расположения окружностей относительно друг друга

Итак, если есть точка пересечения двух окружностей, то мы можем построить треугольник, соединив её с центрами этих окружностей. И сторонами этого треугольника будут два радиуса окружностей и расстояние между центрами (L). Если точки пересечения нет, тогда такой треугольник построить нельзя. И действительно, по правилу треугольника получается, что L больше суммы радиусов.

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

Условие наличия точки пересечения двух окружностей
Условие наличия точки пересечения двух окружностей

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

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

Две "коварные" ситуации расположения окружностей
Две "коварные" ситуации расположения окружностей

На рисунке слева R1 больше суммы L и R2, и треугольник построить нельзя, поэтому нет точки пересечения окружностей. А на рисунке справа правило треугольника снова выполняется. Аналогичные рассуждения можно провести и для второй окружности. Тогда получим ещё два неравенства:

Ещё два неравенства из правила треугольника
Ещё два неравенства из правила треугольника

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

И тогда полное решение задачи будет по формуле "считал, вывел":

Полное решение задачи на языке Python
Полное решение задачи на языке Python

Предыдущий выпуск: Задача 224. Наибольшее произведение

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