Фрагмент звёздного неба спроецирован на плоскость с декартовой системой координат. Учёный решил провести кластеризацию полученных точек, являющихся изображениями звёзд, то есть разбить их множество на N непересекающихся непустых подмножеств (кластеров), таких, что точки каждого подмножества лежат внутри квадрата со стороной длиной H, причём эти квадраты между собой не пересекаются. Стороны квадрата не обязательно параллельны координатным осям. Гарантируется, что такое разбиение существует и единственно для заданных размеров квадрата.
Будем называть центром кластера точку этого кластера, сумма расстояний от которой до всех остальных точек кластера минимальна. Для каждого кластера гарантируется единственность его центра. Расстояние между двумя точками на плоскости $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 = 6 для каждого кластера. В каждой строке записана информация о расположении на карте одной звезды: сначала координата x, затем координата y. Известно, что количество точек не превышает 1000.
В файле Б хранятся координаты точек трёх кластеров, где H = 8, W = 8 для каждого кластера. Известно, что количество точек не превышает 10 000. Структура хранения информации в файле Б аналогична файлу A.
Файл A
Файл B
Для каждого файла определите координаты центра каждого кластера, затем вычислите два числа: Px — среднее арифметическое абсцисс центров кластеров и Py — среднее арифметическое ординат центров кластеров.
В ответе запишите четыре числа: в первой строке — сначала целую часть произведения $|P_x|\times 10000$ затем целую часть произведения $|P_y|\times 10 000$ для файла A, во второй строке — аналогичные данные для файла Б.
Возможные данные одного из файлов иллюстрированы графиком.
Внимание! График приведён в иллюстративных целях для произвольных значений, не имеющих отношения к заданию. Для выполнения задания используйте данные из прилагаемого файла.
[рис.]
Ответ:
Будем называть центром кластера точку этого кластера, сумма расстояний от которой до всех остальных точек кластера минимальна. Для каждого кластера гарантируется единственность его центра. Расстояние между двумя точками на плоскости $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 = 6 для каждого кластера. В каждой строке записана информация о расположении на карте одной звезды: сначала координата x, затем координата y. Известно, что количество точек не превышает 1000.
В файле Б хранятся координаты точек трёх кластеров, где H = 8, W = 8 для каждого кластера. Известно, что количество точек не превышает 10 000. Структура хранения информации в файле Б аналогична файлу A.
Файл A
Файл B
Для каждого файла определите координаты центра каждого кластера, затем вычислите два числа: Px — среднее арифметическое абсцисс центров кластеров и Py — среднее арифметическое ординат центров кластеров.
В ответе запишите четыре числа: в первой строке — сначала целую часть произведения $|P_x|\times 10000$ затем целую часть произведения $|P_y|\times 10 000$ для файла A, во второй строке — аналогичные данные для файла Б.
Возможные данные одного из файлов иллюстрированы графиком.
Внимание! График приведён в иллюстративных целях для произвольных значений, не имеющих отношения к заданию. Для выполнения задания используйте данные из прилагаемого файла.
[рис.]
Ответ:
💡 Пошаговый разбор и решение:
##Приведём решение на языке Python.
from math import dist
data = []
# Для А/Б
for s in open('1_27_A.txt'):
x, y = [float(d) for d in s.replace(',', '.').split()]
data.append([x, y])
rast = 2
clusters = []
while data:
cl = [data.pop()]
for p in cl:
sosed = [p1 for p1 in data if dist(p, p1) Ответ:
26216 24182
150891 63754
from math import dist
data = []
# Для А/Б
for s in open('1_27_A.txt'):
x, y = [float(d) for d in s.replace(',', '.').split()]
data.append([x, y])
rast = 2
clusters = []
while data:
cl = [data.pop()]
for p in cl:
sosed = [p1 for p1 in data if dist(p, p1) Ответ:
26216 24182
150891 63754
Правильный ответ:
26216&24182&150891&63754
📚 Похожие разобранные задания по предмету:
ID 30882 • Задание №8
Все пятибуквенные слова, составленные из букв А, К, Ц, Е, Н, Т, записаны в алфавитном порядке и пронумерованы....
ID 29144 • Задание №1
На рисунке схема дорог Н-ского района изображена в виде графа. Так как таблицу и схему рисовали независимо др...
🔗 Другие задания линии №27 по предмету Информатика:
ID 34669
Имеется набор данных, состоящий из пар положительных целых чисел. Необходимо выбрать из каждой ...
ID 34670
Последовательность натуральных чисел характеризуется числом Х — наибольшим числом, кратным 14 ...
ID 34671
На вход программы поступает последовательность из N целых положительных чисел. Рассматриваются ...
ID 34672
Дана последовательность N целых положительных чисел. Рассматриваются все пары элементов последо...
ID 34673
На вход программы поступает последовательность из N натуральных чисел. Рассматриваются все пары...