eval还可以输出矩阵,按input要求输入[p1,p2,...]后,type(p)是list。
要求概率>0,<1,且概率和为1。
import numpy as np
p = eval(input("请输入事件的p(x):[p1,p2,...],默认排序为a1,a2,...:"))
SUM = 0
if sum(p) != 1:
print("概率分布错误")
for i in p:
if i > 1 or i <= 0:
print("概率分布错误")
else:
h = -np.log2(i)* i #计算单个值
SUM = SUM + h #求和就是熵
print("H的值是:",SUM)
该代码段使用Python的numpy库计算概率分布的熵。用户需输入概率值列表[p1,p2,...],程序检查概率和是否为1以及每个概率值是否在0到1之间。如果满足条件,计算并输出熵(H)的值;否则,提示概率分布错误。

被折叠的 条评论
为什么被折叠?



