Войти
или
Зарегистрироваться
Маркетплейс
Курсы
Учебник
Учебник 2.0
ОГЭ/ЕГЭ
Олимпиады
Рубрикатор
Компилятор
Онлайн Компилятор
Компилятор Python с отладкой
Питон - Черепашка
Редактор HTML Code
SQLite Studio - работа с БД
Статья Автор:
Гусарова Александра
27
def fA(xy): x, y = xy if y > 10: return 1 return 2 def fB(xy): x, y = xy if (21 < x < 29) and (9 < y < 13): return 1 if (10 < x < 16) and (15 < y < 21): return 2 if (10 < x < 16) and (21 < y < 30): return 3 return 4 def dist(a, b): r = (a[0] - b[0])**2 + (a[1] - b[1])**2 return r**0.5 print(dist((0, 3), (4, 0))) def sdist(xy, K): r = 0 for p in K: r = r + dist(xy, p) return r #return sum(dist(xy, p) for p in K) def klaster(K): ans, rans = K[0], sdist(K[0], K) for p in K: r = sdist(p, K) if r < rans: ans = p rans = r return ans, rans #fname = '/home/student/Рабочий стол/27-98a.txt' fname = '/home/student/Рабочий стол/27-98b.txt' D = {1:[], 2:[], 3:[], 4:[]} A = {} for s in open(fname): s = s.replace(',', '.') x, y = s.split() xy = (float(x), float(y)) #i = fA(xy) i = fB(xy) D[i].append(xy) print(len(D[1]), len(D[2]), len(D[3]), len(D[4])) for i in D: if len(D[i]) < 10: continue ans = klaster(D[i]) A[i] = ans print(i, ans) ax = (7.0404312+3.9752601)*10000 ay = (12.9983695 + 6.6649179)*10000 print(int(ax), int(ay)) print(dist((0,0), (23.0609721, 11.5298884)) * 10000) print(dist((0,0), (13.2331173, 18.1812725)) * 10000) print(dist((0,0), (13.1689743, 23.9396534)) * 10000)
×
Загрузка...
Чтобы оставить комментарий, необходимо авторизоваться
💬
Пока нет комментариев. Будьте первым!
Печать