Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import math
- # Lista Champs #
- champs = []
- Ahri=[3,6,2,2,2,2,2, 'Ahri']
- Akali=[6,3,1,2,0,1,3, 'Akali']
- Alistar=[1,2,3,2,2,1,1, 'Alistar']
- Amumu=[5,2,1,2,2,1,1, 'Amumu']
- Anivia=[3,3,2,2,2,2,4, 'Anivia']
- Annie=[3,3,2,2,2,2,1, 'Annie']
- Ashe=[4,4,3,1,2,2,1, 'Ashe']
- Blitzcrank=[1,1,3,1,2,1,2, 'Blitzcrank']
- Brand=[3,3,2,2,2,2,1, 'Brand']
- Caitlyn=[4,4,3,1,1,2,1, 'Caitlyn']
- Cassiopeia=[3,3,2,2,2,2,3, 'Cassiopeia']
- Chogath=[2,3,1,2,2,1,1, 'Cho\'Gath']
- Corki=[4,4,3,1,0,2,1, 'Corki']
- Mundo=[5,2,1,2,1,1,2, 'Dr. Mundo']
- Evelynn=[6,6,1,2,1,1,3, 'Evelynn']
- Ezreal=[4,4,3,1,0,2,3, 'Ezreal']
- Fiddlesticks=[5,5,2,2,2,2,2, 'Fiddlesticks']
- Fiora=[6,6,1,1,0,1,2, 'Fiora']
- Fizz=[6,3,2,2,1,1,2, 'Fizz']
- Galio=[3,2,2,2,2,1,1, 'Galio']
- Gangplank=[2,5,1,1,1,1,2, 'Gangplank']
- Garen=[2,2,1,1,1,1,1, 'Garen']
- Gragas=[3,2,2,2,2,1,2, 'Gragas']
- Graves=[4,4,3,1,1,2,1, 'Graves']
- Hecarim=[2,5,1,1,2,1,2, 'Hecarim']
- Heimer=[3,3,2,2,2,2,2, 'Heimerdinger']
- Irelia=[2,5,1,1,2,1,2, 'Irelia']
- Janna=[1,3,3,2,2,2,2, 'Janna']
- Jarvan=[2,5,1,1,2,1,2, 'Jarvan']
- Jax=[2,2,1,2,2,1,1, 'Jax']
- Karma=[1,3,3,2,1,2,1, 'Karma']
- Karthus=[3,3,2,2,1,2,1, 'Karthus']
- Kassadin=[3,6,2,2,1,1,3, 'Kassadin']
- Katarina=[3,6,2,2,0,1,2, 'Katarina']
- Kayle=[1,1,3,2,1,1,1, 'Kayle']
- Kennen=[3,3,2,2,2,2,2, 'Kennen']
- Kogmaw=[4,3,3,1,1,2,3, 'Kog\'Maw']
- LeBlanc=[3,6,2,2,1,2,3, 'LeBlanc']
- Leesin=[5,6,1,1,2,1,3, 'Lee Sin']
- Leona=[1,2,3,2,2,1,2, 'Leona']
- Lulu=[1,3,3,2,2,2,2, 'Lulu']
- Lux=[3,1,2,2,2,2,2, 'Lux']
- Malphite=[2,5,1,2,2,1,1, 'Malphite']
- Malzahar=[3,3,2,2,2,2,1, 'Malzahar']
- Maokai=[5,2,3,2,2,1,1, 'Maokai']
- MasterYi=[4,5,1,1,0,1,1, 'Master Yi']
- MissFortune=[4,4,3,1,1,2,1, 'Miss Fortune']
- Mordekaiser=[3,2,2,2,0,1,2, 'Mordekaiser']
- Morgana=[3,1,2,2,2,2,1, 'Morgana']
- Nasus=[2,2,1,1,1,1,1, 'Nasus']
- Nautilus=[5,2,1,1,2,1,2, 'Nautilus']
- Nidalee=[3,2,1,2,0,2,2, 'Nidalee']
- Nunu=[1,5,3,2,1,1,2, 'Nunu']
- Olaf=[5,2,1,1,1,1,2, 'Olaf']
- Orianna=[3,3,2,2,2,2,3, 'Orianna']
- Pantheon=[2,5,1,1,2,1,1, 'Pantheon']
- Poppy=[2,6,1,1,1,1,2, 'Poppy']
- Rammus=[5,2,1,1,2,1,2, 'Rammus']
- Renekton=[2,2,1,1,2,1,2, 'Renekton']
- Riven=[2,5,1,1,2,1,2, 'Riven']
- Rumble=[3,3,1,2,1,1,2, 'Rumble']
- Ryze=[3,3,2,2,2,2,2, 'Ryze']
- Sejuani=[2,5,1,2,2,1,2, 'Sejuani']
- Shaco=[6,5,1,1,1,1,4, 'Shaco']
- Shen=[2,5,1,2,2,1,2, 'Shen']
- Shyvana=[2,5,1,1,0,1,1, 'Shyvana']
- Singed=[2,2,1,2,2,1,2, 'Singed']
- Sion=[3,2,1,2,2,1,2, 'Sion']
- Sivir=[4,0,3,1,0,2,1, 'Sivir']
- Skarner=[5,2,1,2,2,1,2, 'Skarner']
- Sona=[1,1,3,2,2,2,1, 'Sona']
- Soraka=[1,3,3,2,1,2,1, 'Soraka']
- Swain=[3,3,2,2,2,2,2, 'Swain']
- Talon=[6,6,1,1,1,1,1, 'Talon']
- Taric=[1,2,3,2,2,1,1, 'Taric']
- Teemo=[4,4,1,2,1,2,1, 'Teemo']
- Tristana=[4,4,3,1,1,2,1, 'Tristana']
- Trundle=[4,2,1,1,1,1,2, 'Trundle']
- Tryndamere=[4,4,1,1,1,1,1, 'Tryndamere']
- TwistedFate=[3,6,2,2,2,2,3, 'Twisted Fate']
- Twitch=[4,6,3,1,1,2,3, 'Twitch']
- Udyr=[2,5,1,1,2,1,3, 'Udyr']
- Urgot=[4,2,3,1,2,2,2, 'Urgot']
- Vayne=[4,4,3,1,1,2,2, 'Vayne']
- Veigar=[3,3,2,2,2,2,2, 'Veigar']
- Viktor=[3,3,2,2,2,2,3, 'Viktor']
- Vladimir=[3,3,1,2,1,2,2, 'Vladimir']
- Volibear=[2,5,1,1,2,1,2, 'Volibear']
- Warwick=[5,2,1,1,2,1,1, 'Warwick']
- Wukong=[2,5,1,1,2,1,3, 'Wukong']
- Xerath=[3,3,2,2,2,2,3, 'Xerath']
- XinZhao=[6,4,1,1,1,1,1, 'Xin Zhao']
- Yorick=[2,3,1,2,1,1,1, 'Yorick']
- Ziggs=[3,3,2,2,1,2,2, 'Ziggs']
- Zilean=[3,1,3,2,1,2,1, 'Zilean']
- champs.append(Ahri)
- champs.append(Akali)
- champs.append(Alistar)
- champs.append(Amumu)
- champs.append(Anivia)
- champs.append(Annie)
- champs.append(Ashe)
- champs.append(Blitzcrank)
- champs.append(Brand)
- champs.append(Caitlyn)
- champs.append(Cassiopeia)
- champs.append(Chogath)
- champs.append(Corki)
- champs.append(Mundo)
- champs.append(Evelynn)
- champs.append(Ezreal)
- champs.append(Fiddlesticks)
- champs.append(Fiora)
- champs.append(Fizz)
- champs.append(Galio)
- champs.append(Gangplank)
- champs.append(Garen)
- champs.append(Gragas)
- champs.append(Graves)
- champs.append(Hecarim)
- champs.append(Heimer)
- champs.append(Irelia)
- champs.append(Janna)
- champs.append(Jarvan)
- champs.append(Jax)
- champs.append(Karma)
- champs.append(Karthus)
- champs.append(Kassadin)
- champs.append(Katarina)
- champs.append(Kayle)
- champs.append(Kennen)
- champs.append(Kogmaw)
- champs.append(LeBlanc)
- champs.append(Leesin)
- champs.append(Leona)
- champs.append(Lulu)
- champs.append(Lux)
- champs.append(Malphite)
- champs.append(Malzahar)
- champs.append(Maokai)
- champs.append(MasterYi)
- champs.append(MissFortune)
- champs.append(Mordekaiser)
- champs.append(Morgana)
- champs.append(Nasus)
- champs.append(Nautilus)
- champs.append(Nidalee)
- champs.append(Nunu)
- champs.append(Olaf)
- champs.append(Orianna)
- champs.append(Pantheon)
- champs.append(Poppy)
- champs.append(Rammus)
- champs.append(Renekton)
- champs.append(Riven)
- champs.append(Rumble)
- champs.append(Ryze)
- champs.append(Sejuani)
- champs.append(Shaco)
- champs.append(Shen)
- champs.append(Shyvana)
- champs.append(Singed)
- champs.append(Sion)
- champs.append(Sivir)
- champs.append(Skarner)
- champs.append(Sona)
- champs.append(Soraka)
- champs.append(Swain)
- champs.append(Talon)
- champs.append(Taric)
- champs.append(Teemo)
- champs.append(Tristana)
- champs.append(Trundle)
- champs.append(Tryndamere)
- champs.append(TwistedFate)
- champs.append(Twitch)
- champs.append(Udyr)
- champs.append(Urgot)
- champs.append(Vayne)
- champs.append(Veigar)
- champs.append(Viktor)
- champs.append(Vladimir)
- champs.append(Volibear)
- champs.append(Warwick)
- champs.append(Wukong)
- champs.append(Xerath)
- champs.append(XinZhao)
- champs.append(Yorick)
- champs.append(Ziggs)
- champs.append(Zilean)
- def similitud(p, c):
- """ Devuelve la similitud de coseno entre un punto p y el centroide c """
- champ1 = p
- champ2 = c
- producto_escalar = 0
- suma_champ1 = 0
- suma_champ2 = 0
- for i in range(len(p)-1):
- producto_escalar = producto_escalar + champ1[i] * champ2[i]
- suma_champ1 = suma_champ1 + math.pow(champ1[i], 2)
- suma_champ2 = suma_champ2 + math.pow(champ2[i], 2)
- return producto_escalar / math.sqrt(suma_champ1 * suma_champ2)
- def nuevo_centroide(grupo):
- centroide = []
- centroide.append(moda(grupo,0))
- centroide.append(moda(grupo,1))
- centroide.append(moda(grupo,2))
- centroide.append(moda(grupo,3))
- centroide.append(moda(grupo,4))
- centroide.append(moda(grupo,5))
- centroide.append(moda(grupo,6))
- return centroide
- def printuh(grupo):
- for i in range(len(grupo)):
- print (grupo[i][7]),
- def moda(lista, index):
- temp = []
- for i in range(len(lista)):
- temp.append(lista[i][index])
- mientras = [0,0]
- for i in range(10):
- meh = temp.count(i)
- if meh > mientras[1]:
- mientras[0] = i #el valor
- mientras[1] = meh #repeticiones
- return mientras[0]
- #Grupos por defecto
- supports = []
- tanks = []
- casters = []
- carries = []
- junglers = []
- #Centroides por defecto
- support = Janna
- tank = Chogath
- caster = Annie
- carry = Ashe
- jungler = Leesin
- iteraciones = 1
- for it in range(iteraciones):
- for i in range(len(champs)):
- if similitud(champs[i], support) > similitud(champs[i], tank):
- supports.append(champs[i])
- elif similitud(champs[i], tank) > similitud(champs[i], caster):
- tanks.append(champs[i])
- elif similitud(champs[i], caster) > similitud(champs[i], carry):
- casters.append(champs[i])
- elif similitud(champs[i], carry) > similitud(champs[i], jungler):
- carries.append(champs[i])
- else:
- junglers.append(champs[i])
- print "\n\n----------------------\Iteracion #" + str(it+1)
- print "\n\nLos centroides son:"
- print support
- print tank
- print caster
- print carry
- print jungler
- print "\n\nEl grupo de supports quedo asi:"
- printuh(supports)
- print "\n\nEl grupo de tanks quedo asi:"
- printuh(tanks)
- print "\n\nEl grupo de casters quedo asi:"
- printuh(casters)
- print "\n\nEl grupo de carries quedo asi:"
- printuh(carries)
- print "\n\nEl grupo de junglers quedo asi:"
- printuh(junglers)
- del supports[:]
- del tanks[:]
- del casters[:]
- del carries[:]
- del junglers[:]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement