信息的熵

信息的熵

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

信息的熵

题目描述

给定一个字符串仅由 ASCIIASCII 可见字符组成的字符串 SS

SS 各字符转为 88 位二进制形式拼接得到一个新的字符串 SS’

定义字符串 SS 的信息熵为 H(S)H(S)

H(S)=i=1S(PSi ×log2 PSi)H(S)=-\sum_{\mathclap{i=1}}^{|S'|} (P_{S'_i} \space× log_2\space P_{S'_i})

其中 PSiP_{S'_i}SiS'_iSS' 中的占比

请你计算 H(S)H(S)

C++C++可使用 double log2(double) 进行计算

输入格式

输入字符串 SS

输出格式

输出一个实数表示 H(S)H(S)

输出保留55位小数
为避免精度误差请使用 printf("%.5lf" , ans); 的方式进行输出

样例 #1

样例输入 #1

样例输出 #1

3.71089

样例 #2

样例输入 #2

abcdefghijklmnopqrstuvwxyz

样例输出 #2

103.28410

提示

对于 50%50\%的数据1S50001≤|S|≤5000

对于 100%100\%的数据1S1051≤|S|≤10^5

保证 SS 仅由大小写字母和数字组成

ACM测试赛

未参加
状态
已结束
规则
ACM/ICPC
题目
4
开始于
2023-07-30 14:15
结束于
2023-07-30 14:45
持续时间
0.5 小时
主持人
参赛人数
1