Войти
или
Зарегистрироваться
Курсы
Учебник
Учебник 2.0
ОГЭ/ЕГЭ
Олимпиады
Рубрикатор
Компилятор
Статья Автор:
Ильичев Василий
27 задача кластеры
import matplotlib.pyplot as plt # Создание данных f = open("27_A_17882.txt") X = [] Y = [] D = [] for i in f.readlines(): x, y = map(float, i.split()) X.append(x * 100) Y.append(y * 100) D.append((x * 100, y * 100)) plt.scatter(X, Y, color='blue', marker='o') # Настройка меток и заголовка plt.xlabel('X-ось') plt.ylabel('Y-ось') plt.title('Зависимость Y от X') # Добавление легенды plt.legend(['Точки данных']) d = {} plt.xticks(range(0, 800, 50)) plt.yticks(range(0, 1100, 50)) plt.grid() dots = [(150, 150), (400, 900), (650, 550)] clasters = [[],[],[]] for x, y in D: p1 = (x - dots[0][0]) ** 2 + (y - dots[0][1]) ** 2 p2 = (x - dots[1][0]) ** 2 + (y - dots[1][1]) ** 2 p3 = (x - dots[2][0]) ** 2 + (y - dots[2][1]) ** 2 mn = min(p1, p2, p3) clasters[[p1,p2,p3].index(mn)].append((x, y)) for i in range(3): mn = 0 for d in clasters[i]: s = 0 for d1 in clasters[i]: s += (d[0] - d1[0]) ** 2 + (d[1] - d1[1]) ** 2 mn = min(mn, s) print(i+1, mn) # Отображение графика plt.show()
×
Прикрепленные файлы
27_A_17882.txt
27_B_17882.txt
Чтобы оставить комментарий нужна авторизация
Печать