Центром кластера считается та из входящих в него точек, для которой
Условие
В лаборатории проводится эксперимент, состоящий из множества испытаний. Результат каждого испытания представляется в виде пары чисел. Для визуализации результатов эта пара рассматривается как координаты точки на плоскости, и на чертеже отмечаются точки, соответствующие всем испытаниям. По результатам эксперимента проводится кластеризация полученных результатов: на плоскости выделяется несколько кластеров — кругов радиуса не более 3 единиц так, что каждая точка попадает ровно в один кластер. Центром кластера считается та из входящих в него точек, для которой минимально среднее из расстояний до всех остальных точек кластера. При этом расстояние вычисляется по стандартной формуле расстояния между точками на евклидовой плоскости. Радиусом кластера считается максимальное из расстояний от центра до остальных точек кластера. Обработка результатов эксперимента включает следующие шаги:
-
кластер, содержащий наибольшее число точек, исключается;
-
определяются центры и радиусы всех оставшихся кластеров;
-
вычисляется средний радиус оставшихся кластеров. В файле записан протокол проведения эксперимента. Каждая строка файла содержит два числа: координаты X и Y точки, соответствующей одному испытанию. По данному протоколу надо определить средний радиус всех кластеров за исключением содержащего наибольшее число точек. Файл AФайл BВам даны два входных файла (A и B), каждый из которых имеет описанную выше структуру. По данным каждого из представленных файлов определите средний радиус по описанным выше правилам. В ответе запишите два числа: сначала средний радиус для файла A, затем для файла B. В качестве значения указывайте целую часть от умножения найденного числового значения на 10 000. Ответ:

Ответ
Ответ и полный разбор откроются после входа
Посмотреть ответРешение по шагам
Как рассуждать
Решение. Построим диаграммы для файла А и Б. Для этого воспользуемся табличным редактором. Диаграмма для файла А: [рисунок] Диаграмма для файла Б: [рисунок] Приведём решение на языке Python для файла А. import math def dist(p1, p2): x1, y1 = p1 x2, y2 = p2 return ((x1 - x2)**2 + (y1 - y2)**2) ** 0.5 def center_of_cluster(kl): # Возвращает центр кластера: точку с минимальной суммой расстояний до остальных if not kl: return None if len(kl) == 1: return kl[0] best_center = None best_sum_dist = float('inf') for p in kl: s = sum(dist(p, q) for q in kl) if s < best_sum_dist: best_sum_dist = s best_center = p return best_center def radius_of_cluster(center, kl): if center is None or not kl: return 0.0 return max(dist(center, q) for q in kl) def mean_radius_after_exclusion(points): #
Осталось ещё 4 шага
кластеризация по эвристике clusters = [[] for…
исключаем кластер с наибольшим количеством…
кластеризация по эвристике clusters = [[] for…
исключаем кластер с наибольшим количеством…
Бесплатно · займёт минуту