Решение: Кластеризация звёздных точек
Задание выполняется с использованием прилагаемых файлов. Фрагмент звёздного неба спроецирован на плоскость с декартовой системой координат. Учёный решил провести кластеризацию полученных точек, являющихся изображениями звёзд, то есть разбить их множество на $N$ непересекающихся непустых подмножеств (кластеров), таких, что точки каждого подмножества лежат внутри прямоугольника со сторонами длиной $H$ и $W$, причём эти прямоугольники между собой не пересекаются. Стороны прямоугольников не обязательно параллельны координатным осям. Гарантируется, что такое разбиение существует и единственно для заданных размеров прямоугольников.
Будем называть центром кластера точку этого кластера, сумма расстояний от которой до всех остальных точек кластера минимальна. Для каждого кластера гарантируется единственность его центра. Расстояние между двумя точками на плоскости $A(x_1,y_1)$ и $B(x_2,y_2)$ вычисляется по формуле $d(A,B)=\sqrt{(x_2-x_1)^2+(y_2-y_1)^2}$.
В файле А хранятся координаты точек двух кластеров, где $H=6$ и $W=4{,}5$ для каждого кластера. В каждой строке записана информация о расположении на карте одной звезды: сначала координата $x$, затем координата $y$. Известно, что количество точек не превышает 1000.
В файле Б хранятся координаты точек трёх кластеров, где $H=6$, $W=5$ для каждого кластера. Известно, что количество точек не превышает 10\,000. Структура хранения информации в файле Б аналогична структуре в файле А.
Известно, что в файле Б имеются координаты ровно трёх «лишних» точек, являющихся аномалиями, возникшими в результате помех при передаче данных. Эти три точки не относятся ни к одному из кластеров, их учитывать не нужно.
Для файла А определите координаты центра каждого кластера, затем найдите два числа: $P_x$ — минимальную из абсцисс центров кластеров и $P_y$ — минимальную из ординат центров кластеров.
Для файла Б определите координаты центра каждого кластера, затем найдите два числа: $Q_1$ — расстояние между центрами кластеров с минимальным и максимальным количеством точек и $Q_2$ — максимальное расстояние от центра кластера до точки этого же кластера среди всех кластеров. Гарантируется, что во всех кластерах количество точек различно.
Используйте данные из прилагаемых файлов. В ответе запишите четыре числа: в первой строке — сначала абсолютную величину целой части произведения $P_x\times10\,000$, затем абсолютную величину целой части произведения $P_y\times10\,000$; во второй строке — сначала целую часть произведения $Q_1\times10\,000$, затем целую часть произведения $Q_2\times10\,000$.
Решение по шагам
6 шаговСчитать координаты точек из файлов А и Б. Для файла Б обнаружить и исключить три точки, которые не входят ни в один из трёх кластеров.
Разбить точки каждого файла на кластеры так, чтобы точки одного кластера помещались в прямоугольник со сторонами заданных размеров, а прямоугольники разных кластеров не пересекались.
Для каждого кластера перебрать его точки в качестве кандидатов на центр и выбрать точку с минимальной суммой расстояний до всех остальных точек кластера.
Для файла А найти минимальные абсциссу и ординату среди центров кластеров.
Для файла Б найти кластеры с минимальным и максимальным количеством точек и вычислить расстояние между их центрами. Затем найти максимальное расстояние от центра до точки внутри каждого кластера и выбрать наибольшее из этих расстояний.
Умножить полученные значения на $10\,000$, взять абсолютные значения и целые части в соответствии с условием и записать четыре числа в две строки.
Числовой ответ зависит от данных в прилагаемых файлах и без них не определяется.
Этот ответ получен в разборе, но не сверен с официальным ключом из банка — проверьте выкладки, прежде чем заучивать результат.
Где здесь ошибаются
Учитывают три аномальные точки файла Б при кластеризации или вычислении центров.
Ищут среднее арифметическое координат вместо точки кластера с минимальной суммой расстояний.
Используют расстояние без квадратного корня.
Путают максимальное расстояние внутри одного кластера с расстоянием между центрами двух кластеров.
Неправильно берут целую часть после умножения на $10\,000$.