Статья Автор: Купряшин Саша

27

def dist(a,b):
  r = (a[0] - b[0])**2 + (a[1] - b[1])**2
  return r**0.5

def klass(t,A):
  r = 0
  for xy in A:
    r+=dist(t,xy)
  return r

def klaster(A):
  ans = A[0]
  mr = klass(ans, A)
  for xy in A:
    r = klass(xy,A)
    if r < mr:
      mr = r
      ans = xy
  return ans, mr

fname = "27_B_17882.txt"
DD = {1:[], 2:[], 3:[]}
for s in open(fname):
    x,y = map(float,s.split())
    if x > 5: DD[3].append((x,y)) #x+y
    elif y < 6: DD[1].append((x,y))
    else: DD[2].append((x,y))

#print(len(DD[1]), len(DD[3]), len(DD[2]))
for i in [1,2,3]:
  ans, mr = klaster(DD[i])
  print(i, ans,mr)
  
Пропустить Навигационные Ссылки.
Чтобы оставить комментарий нужна авторизация
Печать