Войти
или
Зарегистрироваться
Курсы
Учебник
Учебник 2.0
ОГЭ/ЕГЭ
Олимпиады
Рубрикатор
Компилятор
Статья Автор:
Трушин Илья
Спидран по 27 заданию ЕГЭ Инфа. ПОЕХАЛИ!
def dist(xy, pos): r = (xy[0] - pos[0]) ** 2 + (xy[1] - pos[1]) ** 2 return r ** 0.5, pos fname = '27B.txt' dots = [(1, -3, 0), (4, 2, 1), (7, -3, 2)] cls = {0: [], 1: [], 2: []} ksize = 10000 for s in open(fname): s = s.replace(',','.') x, y = map(float, s.split()) r, pos = min(dist((x, y), dot) for dot in dots) cls[pos[2]].append((x, y)) print(len(c) for c in cls) centrs = [] for ind in cls: if len(cls[ind]) == 0: continue centr = None for xy in cls[ind]: r = sum(dist(dot, xy)[0] for dot in cls[ind]) if centr == None or centr[0] > r: centr = (r, xy) centrs.append(centr[1]) print(ind, centr) px = sum(xy[0] for xy in centrs) / len(centrs) py = sum(xy[1] for xy in centrs) / len(centrs) print(px * ksize, py * ksize)
×
Чтобы оставить комментарий нужна авторизация
Печать