Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ###########
- def moyenne(l, cent):
- n = len(l)
- if n == 0:return float("inf")
- s = 0
- for i in range(n):
- s += distance(cent, l[i])
- return s/n
- def centroide(l):
- if len(l) == 0:return [0,0]
- xs = 0
- ys = 0
- for p in l:
- xs += p[0]
- ys += p[1]
- return [xs/len(l),ys/len(l)]
- def distance(p1,p2):
- i = p1[0] - p2[0]
- j = p1[1] - p2[1]
- return sqrt(i*i + j*j)
- def metrique(z):
- somme = 0
- for i in range(len(z)):
- formule = []
- centI = centroide(z[i])
- sigmaI = moyenne(z[i], centI)
- for j in range(len(z)):
- if (i==j):continue
- centJ = centroide(z[j])
- sigmaJ = moyenne(z[j], centJ)
- d = distance(centI,centJ)
- # division par 0
- if d > 1e-8:
- formule.append((sigmaI+sigmaJ)/d)
- else:
- return float("inf")
- if formule:
- somme += max(formule)
- return somme/7
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement