Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- n = int(input())
- k = int(input())
- a = [(int)0 for i in range(n)]
- b = [(float)0 for i in range(n)]
- db =[(float)0 for i in range(n)]
- elems = [[] for i in range(k+1)]
- sumdB = (float)0
- squared_sumdB = (float)0
- def GetD():
- sm = (float)0
- for i in range(n):
- sm += b[i]
- sm /= n
- for i in range(n):
- db[i] = b[i] - sm
- sumdB += db[i]
- squared_sumdB += db[i] * db[i]
- squared_sumdB = sqrt(squared_sumdB)
- def CorrelationCoef(e):
- sm = (float)len(e)
- sm2 = 1 - sm
- sm *= -1
- sumC = sm * sumdB
- sumZ = sqrt(sm * sm * (n - len(e)) + sm2 * sm2 * len(e))
- sumZ *= squared_sumdB
- for u in e:
- sumC -= sm * db[u]
- sumC += sm2 * db[u]
- return sumC / sumZ
- for i in range(n):
- a[i] = int(input())
- elems[a[i]].append(i)
- for i in range(n):
- b[i] = int(input())
- GetD()
- smC = (float)0
- for i in range(1, k+1):
- if(len(elems[i]) > 0):
- smC += len(elems[i]) * CorrelationCoef(elems[i])
- print(smC)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement