Новая Школа - онлайн-школа подготовки к ЕГЭ
При поддержке
Тренировки Пробники Статистика Карточки Учебник Об экзамене Учительская
  • Тренажёр заданий ЕГЭ
  • Тренажёр ЕГЭ по Информатике
  • Список заданий №27
  • Задание №27
  • Задание №71690 ЕГЭ Информатике

    Условие задания #71690

    №27 по КИМ

    Учёный решил провести кластеризацию некоторого множества звёзд по их
    расположению на карте звёздного неба. Кластер звёзд – это набор звёзд
    (точек) на графике, лежащий внутри прямоугольника высотой H и
    шириной W. Каждая звезда обязательно принадлежит только одному из
    кластеров.
    Истинный центр кластера, или центроид, – это одна из звёзд на графике,
    сумма расстояний от которой до всех остальных звёзд кластера минимальна.
    Под расстоянием понимается расстояние Евклида между двумя точками
    A(x 1 , y 1 ) и B(x 2 , y 2 ) на плоскости, которое вычисляется по формуле:
    d ( A , B ) = (( x 2 − x 1 ) 2 + ( y 2 − y 1 ) 2 ) .
    В файле A хранятся данные о звёздах двух кластеров, где H=3, W=3 для
    каждого кластера. В каждой строке записана информация о расположении на
    карте одной звезды: сначала координата x, затем координата y. Значения
    даны в условных единицах. Известно, что количество звёзд не превышает
    1000.
    В файле Б хранятся данные о звёздах трёх кластеров, где H=3, W=3 для
    каждого кластера. Известно, что количество звёзд не превышает 10 000.
    Структура хранения информации о звездах в файле Б аналогична файлу А.
    Для каждого файла определите координаты центра каждого кластера, затем
    вычислите два числа: P x – среднее арифметическое абсцисс центров
    кластеров, и P y – среднее арифметическое ординат центров кластеров.
    В ответе запишите четыре числа: в первой строке сначала целую часть
    произведения P x × 10 000 , затем целую часть произведения P y × 10 000 для
    файла А, во второй строке – аналогичные данные для файла Б.
    demo_2025_27_€.xlsxdemo_2025_27_.xlsx

    Ответ

    Ответ:

    10738 30730 37522 51277

    Решение

    f=open('demo_2025_27_А.txt')
    f.readline()
    a1=[]
    a2=[]
    a3=[]
    for s in f.readlines():
        s = s.replace(',', '.').split()
        x, y = float(s[0]), float(s[1])
        if x < 3 and y < 4:
            a1.append((x, y))
        else:
            if x<5 and y>6:
                a2.append((x, y))
            else:
                a3.append((x, y))
    
    sm1 = sm2 = sm3 = 10**10
    x1=y1=x2=y2=x3=y3=0
    for i in range(len(a1)):
        d_sm = 0
        for j in range(len(a1)):
            d_sm += ((a1[j][0] - a1[i][0])**2 + (a1[j][1] - a1[i][1])**2) ** 0.5
    
        if d_sm < sm1:
            x1 = a1[i][0]
            y1 = a1[i][1]
            sm1 = d_sm
    
    for i in range(len(a2)):
        d_sm = 0
        for j in range(len(a2)):
            d_sm += ((a2[j][0] - a2[i][0])**2 + (a2[j][1] - a2[i][1])**2) ** 0.5
    
        if d_sm < sm2:
            x2 = a2[i][0]
            y2 = a2[i][1]
            sm2 = d_sm
    
    for i in range(len(a3)):
        d_sm = 0
        for j in range(len(a3)):
            d_sm += ((a3[j][0] - a3[i][0])**2 + (a3[j][1] - a3[i][1])**2) ** 0.5
    
        if d_sm < sm3:
            x3 = a3[i][0]
            y3 = a3[i][1]
            sm3 = d_sm
    
    
    Px = (x1+x2+x3)/3
    Py = (y1+y2+y3)/3
    
    
    print(int(Px*10000), int(Py*10000))
    Понятно ли решение?

    Похожие задания

    15
    Задание №88376Задание №88377Задание №88378Задание №88379Задание №88380Задание №88381Задание №88382Задание №88383Задание №88384Задание №88385Задание №88386Задание №88387Задание №88388Задание №88389Задание №88374
    Бесплатно

    Решай задачи ЕГЭ в приложении

    Скачивай наш Тренажер ЕГЭ на iPhone или Android и тренируйся в любое время и в любом месте!

    Саша — ассистент в телеграмме