Анализ Проблемы «Зеркало В Коридоре» И Возмущение

Хотелось бы подробнее разобрать проблему из публикации «Олимпиады по программированию среди школьников» , а также покажем, что оно действительно нетривиально.

Хотя результирующая программа состоит из трёх заданий и двух сравнений, прийти к такому результату не так-то просто, особенно если под рукой нет справочника по аналитической геометрии.



Анализ проблемы «Зеркало в коридоре» и возмущение

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

Хотя на самом деле программирования будет мало и много математики.

В данной работе использованы справочные материалы по университетской математике, а точнее один абзац из главы «Основы линейной алгебры и аналитической геометрии» [1].

Для начала напомню текст задачи:

Простуженный Петя лежал в постели, как вдруг кто-то открыл дверь.

Пете лень было вставать, и он посмотрел в зеркало, чтобы увидеть, кто пришел.

Координаты вошедшего известны (его можно считать материальной точкой), необходимо выяснить, сможет ли Петя увидеть отражение вошедшего в зеркале.

Зеркало имеет форму круга с центром в начале координат и расположено в плоскости ax+by+cz=0. Петю также можно считать материальной точкой.

Гарантируется, что Петя и незнакомец не лежат в плоскости зеркала и что Петя всегда видит отражающую сторону зеркала.

Если изображение попадает на границу зеркала, то Петя видит входящего человека.

Поскольку материальными точками можно считать и Петю, и вошедшего, то Петя может видеть отражение вошедшего как через вошедшего, так и через собственное отражение.

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

Поэтому я предлагаю упростить задачу и решить ее для двумерного пространства, а затем по аналогии перейти к трехмерному пространству.

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

их координаты имеют одинаковый знак.

Давайте нарисуем иллюстрацию проблемы:

Анализ проблемы «Зеркало в коридоре» и возмущение

Обозначим Петю точкой С , точка зрения незнакомца Т , зеркало - прямой сегмент

Анализ проблемы «Зеркало в коридоре» и возмущение

Исходные данные: р — радиус зеркала, коэффициенты А И Б ;

Анализ проблемы «Зеркало в коридоре» и возмущение

— координаты входящего;

Анализ проблемы «Зеркало в коридоре» и возмущение

— Координаты Питера.

Алгоритм решения следующий: — Через точку Т провести прямую линию перпендикулярно ПК ; — Отмечаем точку на этой линии Т` симметричная точка Т относительно ПК - это будет изображение входящего человека, которое увидит (или не увидит) Петя; - Давайте сделаем прямой СТ` ; — Найдем точку пересечения ПК И СТ` ; — Проверим, принадлежит ли данная точка отрезку ПК Итак, уравнение прямой, проходящей через точку Т перпендикуляр

Анализ проблемы «Зеркало в коридоре» и возмущение

следующее:

Анализ проблемы «Зеркало в коридоре» и возмущение

или

Анализ проблемы «Зеркало в коридоре» и возмущение



Анализ проблемы «Зеркало в коридоре» и возмущение

Точка пересечения ТТ` И ПК является решением системы уравнений:

Анализ проблемы «Зеркало в коридоре» и возмущение

Умножим уравнения на А И Б соответственно, и складываем:

Анализ проблемы «Зеркало в коридоре» и возмущение



Анализ проблемы «Зеркало в коридоре» и возмущение



Анализ проблемы «Зеркало в коридоре» и возмущение



Анализ проблемы «Зеркало в коридоре» и возмущение

Найдена точка

Анализ проблемы «Зеркало в коридоре» и возмущение

— проекция точки Т напрямую ПК Определим координаты точки Т` :

Анализ проблемы «Зеркало в коридоре» и возмущение



Анализ проблемы «Зеркало в коридоре» и возмущение

Два шага позади.

Найдем уравнение прямой СТ` :

Анализ проблемы «Зеркало в коридоре» и возмущение

или

Анализ проблемы «Зеркало в коридоре» и возмущение

Подставим выражения для координат Т` :

Анализ проблемы «Зеркало в коридоре» и возмущение

Перейдем к целочисленному исчислению — умножим уравнение на

Анализ проблемы «Зеркало в коридоре» и возмущение

:

Анализ проблемы «Зеркало в коридоре» и возмущение

Пришло время представить замену:

Анализ проблемы «Зеркало в коридоре» и возмущение

тогда уравнение СТ` принимает форму:

Анализ проблемы «Зеркало в коридоре» и возмущение

Точка пересечения ПК И СТ` является решением системы:

Анализ проблемы «Зеркало в коридоре» и возмущение



Анализ проблемы «Зеркало в коридоре» и возмущение



Анализ проблемы «Зеркало в коридоре» и возмущение



Анализ проблемы «Зеркало в коридоре» и возмущение



Анализ проблемы «Зеркало в коридоре» и возмущение

И наконец, расстояние от центра координат до найденной точки:

Анализ проблемы «Зеркало в коридоре» и возмущение

Отходим от радикалов:

Анализ проблемы «Зеркало в коридоре» и возмущение

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

В сравнении

Анализ проблемы «Зеркало в коридоре» и возмущение

Умножим обе части неравенства на заведомо положительный множитель (так как это четная степень)

Анализ проблемы «Зеркало в коридоре» и возмущение

те.

нас интересует истинность выражения

Анализ проблемы «Зеркало в коридоре» и возмущение

Почему я так подробно все это описываю? Просто чтобы показать, какой объем работы должен проделать участник олимпиады для решения этой задачи, а ведь все эти формулы для перпендикулярных прямых не включены в школьный курс математики, участник должен сам дойти до них логическим путем? Причем на это задание ему давали в среднем 30 минут. Так что проблема фактически еще не решена.

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

Что ж, нам не грозит нехватка времени, так что продолжим.

Разберемся с «зазеркальем».

У меня есть такое решение (хотя оно тоже не сразу пришло в голову, сначала я думал о переходе в систему координат, связанную с прямой линией зеркала, но есть "некрасивые" тригонометрические функции) - через точки С И Т провести прямые линии, параллельные данной

Анализ проблемы «Зеркало в коридоре» и возмущение

.

Параллельные линии имеют несколько коэффициентов при Икс И й , т.е.



Анализ проблемы «Зеркало в коридоре» и возмущение

, разница только в бесплатном сроке.

Не будем ничего выдумывать и возьмем эти коэффициенты равными заданным А И Б .

Тогда уравнение прямой, проходящей через точку С параллельный ПК имеет форму:

Анализ проблемы «Зеркало в коридоре» и возмущение

или

Анализ проблемы «Зеркало в коридоре» и возмущение

Здесь в зависимости от знака свободного члена

Анализ проблемы «Зеркало в коридоре» и возмущение

прямая будет находиться по ту или иную сторону от данной.

Аналогично для линии, проходящей через Т :

Анализ проблемы «Зеркало в коридоре» и возмущение

Сделаем следующее: найдем стоимость продукта

Анализ проблемы «Зеркало в коридоре» и возмущение

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

И напоследок приведу текст программы для трехмерного мира, т.е.

для начального условия задачи: источник

   

package ru.andrewn; import static java.lang.System.out; public class Program {

Теги: #возмущение #математика #олимпиадные задачи #программирование #математика
Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.