关注
import math def calE(num0, num1): p0 = num0 / (num0 + num1) p1 = 1 - p0 if p0 == 1 or p1 == 1: return 0 return -(p0 math.log2(p0) + p1 math.log2(p1)) if name == "main": N = int(input())
arr = []
for i in range(N):
arr.append(list(map(int, input().split(','))))
E0 = 0
E1 = 0
key_dic = {}
sum_0 = 0
sum_1 = 0
for i in arr:
if key_dic.get(i[0], None) is None:
if i[1] == 1:
key_dic[i[0]] = [0, 1]
sum_1 += 1
else:
key_dic[i[0]] = [1, 0]
sum_0 += 1
else:
if i[1] == 1:
key_dic[i[0]][1] += 1
sum_1 += 1
else:
key_dic[i[0]][0] += 1
sum_0 += 1
E0 = calE(sum_0, sum_1)
for k, v in key_dic.items():
E1 += calE(v[0], v[1])
print(round(E0-E1, 2))
大神能帮我看一下为啥我这个一直是0 。。。我仔细看了下你的代码,似乎我们的思路是一样的?(为什么牛客网上排版会这样。。。)
查看原帖
点赞 评论
相关推荐
牛客热帖
更多
正在热议
更多
# 牛客吐槽大会 #
25862次浏览 325人参与
# 工作前VS工作后,你的心态变化 #
38592次浏览 267人参与
# 秋招想进国企该如何准备 #
125522次浏览 617人参与
# 你的mentor是什么样的人? #
51668次浏览 741人参与
# 从mentor身上学到了__ #
55695次浏览 886人参与
# 我和mentor的爱恨情仇 #
106774次浏览 969人参与
# 我的省钱小妙招 #
37640次浏览 446人参与
# 机械人避雷的岗位/公司 #
44976次浏览 320人参与
# 在大厂上班是一种什么样的体验 #
15534次浏览 225人参与
# 为了减少AI幻觉,你注入过哪些设定? #
7891次浏览 217人参与
# 职场上哪些行为很加分? #
323280次浏览 3619人参与
# 通信/硬件求职避坑tips #
140052次浏览 1087人参与
# 论秋招对个人心气的改变 #
16480次浏览 251人参与
# 你觉得mentor喜欢什么样的实习生 #
48810次浏览 1002人参与
# 你现在会用到哪些AI技能? #
24877次浏览 137人参与
# 牛客AI体验站 #
9621次浏览 230人参与
# 毕业论文进行时 #
27750次浏览 153人参与
# 运营来爆料 #
77505次浏览 467人参与
# 程序员找工作至少要刷多少题? #
24688次浏览 316人参与
# 过年最难忘的一件事 #
23377次浏览 179人参与
OPPO公司福利 1133人发布