Jasper Yu says to YSITD
import socket mips = open('mips').read().strip().split('\n') known = open('known').read().strip().split('\n') def dist(a, b): def to_num(addr): quads = map(ord, socket.inet_aton(addr)) return reduce(lambda x,y: x * 0x10000 + y, quads) return abs(to_num(a) - to_num(b)) def score_cal(oscore): t = 0 for i in range(len(oscore)): t += oscore[i] * 0.95**i return t print(mips, known) m = dist('0.0.0.0', '255.255.255.255') for i in mips: score = [] print(i) for j in known: #print(i, j) score.append((m - dist(i, j))//1e15) #print(score) score.sort() score.reverse() print(score_cal(score))