Skip to content

Instantly share code, notes, and snippets.

@billowdood
Created November 2, 2012 16:06
Show Gist options
  • Save billowdood/4002319 to your computer and use it in GitHub Desktop.
Save billowdood/4002319 to your computer and use it in GitHub Desktop.
import math
from random import randint
from aspirante import aspirante
class mejorAspirante:
def __ini__(self):
print
## self.aspirantes = aspirantes
## self.centroides = centroides
def eucladeana(self, aspirante, centroide):
return math.sqrt(math.pow((aspirante.getX() - centroide.getX()),2) + math.pow((aspirante.getY() - centroide.getY()),2))
def distancias(self,aspirantes, centroide, n):
i=0
list = []
for i in range(len(aspirantes)):
aspirantes[i].setDistancia(self.eucladeana(aspirantes[i], centroide))
for i in range(n):
list.append(aspirantes[i])
return list
def getBest(self, aspirantes, centroides, n):
"retorna una lista listas de los mejores candidatos"
i = 0
best=[]
for centroide in centroides:
l = self.distancias(aspirantes, centroide, n)
l.sort()
# best.append(l)
print "**********************c"+str(i)+"*************************"
for p in l:
print p.getDistancia()
i+=1
return best
if __name__ == "__main__":
aspirantes = []
centroides = []
print "******************************Aspirntes********************************"
for i in range(10):
aspirantes.append(aspirante(randint(1,30),randint(1,30)))
print aspirantes[i].getX(),aspirantes[i].getY()
print "******************************Centroides*******************************"
for a in range(3):
centroides.append(aspirante(randint(1,25), randint(1,25)))
print centroides[a].getX(),centroides[a].getY()
mejoresAspirantes = mejorAspirante()
lista = mejoresAspirantes.getBest(aspirantes, centroides, 10)
i = 0
for l in lista:
print "********************c"+str(i)+"*************************************"
for obj in l:
print obj.getDistancia()
i+=1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment