当前位置:   article > 正文

B.01串的熵

01串的熵

目录

题目描述

题目解答


题目描述

对于一个长度为 nn 的 01 串 S=x1x2x3…xnS=x1​x2​x3​…xn​,香农信息熵的定义为 H(S)=H(S)= −Σ1np(xi)log⁡2(p(xi))−Σ1n​p(xi​)log2​(p(xi​)),其中 p(0),p(1)p(0),p(1) 表示在这个 01 串中 0 和 1 出现的占比。

比如,对于 S=100S=100 来说,信息熵 H(S)=−13log⁡2(13)−23log⁡2(23)−23log⁡2(23)=1.3083H(S)=−31​log2​(31​)−32​log2​(32​)−32​log2​(32​)=1.3083。

对于一个长度为 2333333323333333 的 01 串, 如果其信息熵为 11625907.579811625907.5798, 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次?

题目解答

  1. #include <stdio.h>
  2. #include <math.h>
  3. int main()
  4. {
  5. double n = 23333333;
  6. double sum;
  7. int j;
  8. for(j = n/2; j >=0; j--)
  9. {
  10. sum = 0;
  11. sum -= j*(j / n)*log2(j / n);
  12. sum -= (n-j)*((n - j) / n)*log2((n - j) / n);
  13. if (sum > 11625907.5 && sum< 11625907.6)
  14. break;
  15. }
  16. printf("%d",j);
  17. return 0;
  18. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/438816
推荐阅读
相关标签
  

闽ICP备14008679号