import math
data = [
'U','G','E','U','X','V','X','G','U','X','G','M','X','NA','I','U','NA','G',
'I','X','I','M','NA','V','NA','X','G','X','V','E','I','E','U','E','E','V',
'M','G','I','U','X','I','V','G','G','M','E','U','E','M','E','G','V','U',
'U','X','G','V','V','I','M','I','X','NA','I','X','E','E','NA','X','NA',
'X','M','U','I','G','G','U','U','I','E','M','I','NA','E','I','M','E','I',
'V','M','U','U','V','E','M','I','NA','M','I','V','G','E','V'
]
a = 0.1
d = []
for x in data:
if x != 'NA':
d.append(x)
vals = []
for x in d:
if x not in vals:
vals.append(x)
n = len(d)
m = len(vals)
df = m - 1
e = n / m
hi = 0
for v in vals:
cnt = 0
for x in d:
if x == v:
cnt += 1
hi += (cnt - e) ** 2 / e
def cdf(x):
y = x / 2
return 1 - math.exp(-y) * (1 + y + y ** 2 / 2)
def ppf(q):
l = 0
r = 100
for i in range(100):
mid = (l + r) / 2
if cdf(mid) < q:
l = mid
else:
r = mid
return (l + r) / 2
hk = ppf(1 - a)
if hi > hk:
ans = 1
else:
ans = 0
print(df)
print("%.8f" % hi)
print("%.8f" % hk)
print(ans)