Загрузка данных


import math

# Таблица данных
data = [
    {"Код": 1, "R": 3, "C": 1},
    {"Код": 2, "R": 6, "C": 8},
    {"Код": 3, "R": 1, "C": 2},
    {"Код": 4, "R": 8, "C": 6},
    {"Код": 5, "R": 3, "C": 3},
    {"Код": 6, "R": 8, "C": 5}, # Объект с повторяющимися значениями
    {"Код": 7, "R": 8, "C": 5}, # Объект с повторяющимися значениями
    {"Код": 8, "R": 9, "C": 11},
    {"Код": 9, "R": 4, "C": 6}
]

# Координаты центров кластеров
center_A = [9, 10]  # x=9, y=10
center_B = [4, 6]    # x=4, y=6

def distance(x1, y1, x2, y2):
    """Евклидово расстояние между двумя точками"""
    return math.sqrt((x1 - x2)**2 + (y1 - y2)**2)

count_A = 0
count_B = 0

for obj in data:
    dist_to_A = distance(obj["R"], obj["C"], center_A[0], center_A[1])
    dist_to_B = distance(obj["R"], obj["C"], center_B[0], center_B[1])
    
    # Округляем расстояния вниз перед сравнением
    if round(dist_to_A) < round(dist_to_B):
        count_A += 1
    else:
        count_B += 1

print(f"Количество объектов в кластере А: {count_A}")
print(f"Количество объектов в кластере Б: {count_B}")