KL散度,提示越界,通过率66.67,找了半天没找出问题在哪里 from math import log if __name__ == "__main__":     p_data = [int(i) for i in input().split()]     q_data = [int(i) for i in input().split()]     p_total = len(p_data) + 1e-5     q_total = len(q_data) + 1e-5     x_unique = []     for x in p_data + q_data:         if x not in x_unique:             x_unique.append(x)     p_stat = {x: 0 for x in x_unique}     q_stat = {x: 0 for x in x_unique}     for x in p_data:         p_stat[x] += 1     for x in q_data:         q_stat[x] += 1     kl_val = 0     for x in x_unique:         p_proba = p_stat[x] / p_total + 1e-5         q_proba = q_stat[x] / q_total + 1e-5         kl_val += p_proba * log(p_proba / q_proba, 2)     print("%.2f" % kl_val)
点赞 1

相关推荐

牛客网
牛客企业服务