Пусть P = {P1 (x1, y1), P2 (x2, y2),.,,, Pn (xn, yn)} - набор из n точек, расположенных внутри прямоугольника, так что ни одна из точек не касается его границы.Верхний левый угол прямоугольника находится в начале координат O (0, 0).Плоское зеркало размещается вдоль нижнего края прямоугольника (как показано на рисунке).Точечный источник света расположен в O. Источник может излучать один луч света под любым углом θ.
Написать алгоритм (псевдо-код) для вычисления значения θ, для которого соответствующий луч и его отражение вместе проходят через максимальное число точек из набора P.
Например, на рисунке луч R1 под углом θ1 (обозначен сплошной линией), проходит через 3 точки, а луч R2 под углом θ2 (обозначен пунктирной линией) проходит только через 2 точки.Вы получите полный кредит, только если ваш алгоритм занимает O (n log n) времени.
................................................
Я бы сделал эту проблему, если бы нашел значение θ таким, чтобы максимальное количество точекна плоскости лежит падающий луч.
В то время я рассчитал бы значение θ для каждой точки, сфокусировав луч света на каждой точке и сохранив значения θ для точек в массиве.
Тогда наша задача сводится к тому, чтобы найти максимальное количество повторяющихся элементов в массиве.Это можно решить за O (n) раз.
Но я не знаю, как обращаться с отраженным лучом.Я искал в интернете, но тщетно.Пожалуйста помоги.