Advertisement
bibaboba12345

Untitled

Nov 14th, 2022
148
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.01 KB | None | 0 0
  1. n = int(input())
  2. k = int(input())
  3. a = [(int)0 for i in range(n)]
  4. b = [(float)0 for i in range(n)]
  5. db =[(float)0 for i in range(n)]
  6. elems = [[] for i in range(k+1)]
  7.  
  8. sumdB = (float)0
  9. squared_sumdB = (float)0
  10.  
  11. def GetD():
  12. sm = (float)0
  13. for i in range(n):
  14. sm += b[i]
  15. sm /= n
  16. for i in range(n):
  17. db[i] = b[i] - sm
  18. sumdB += db[i]
  19. squared_sumdB += db[i] * db[i]
  20. squared_sumdB = sqrt(squared_sumdB)
  21.  
  22. def CorrelationCoef(e):
  23. sm = (float)len(e)
  24. sm2 = 1 - sm
  25. sm *= -1
  26. sumC = sm * sumdB
  27. sumZ = sqrt(sm * sm * (n - len(e)) + sm2 * sm2 * len(e))
  28. sumZ *= squared_sumdB
  29. for u in e:
  30. sumC -= sm * db[u]
  31. sumC += sm2 * db[u]
  32. return sumC / sumZ
  33.  
  34. for i in range(n):
  35. a[i] = int(input())
  36. elems[a[i]].append(i)
  37.  
  38. for i in range(n):
  39. b[i] = int(input())
  40.  
  41. GetD()
  42. smC = (float)0
  43.  
  44. for i in range(1, k+1):
  45. if(len(elems[i]) > 0):
  46. smC += len(elems[i]) * CorrelationCoef(elems[i])
  47.  
  48. print(smC)
  49.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement