当前位置:   article > 正文

蓝桥杯 试题 B: 01 串的熵_对于一个长度为 n 的 01 串 s = x1x2x3...xn. 香农信息熵的定义为: 。 其中

对于一个长度为 n 的 01 串 s = x1x2x3...xn. 香农信息熵的定义为: 。 其中 p(0),

对于一个长度为 n 的 01 串 S = x1x2x3:::xn,香农信息熵的定义为 H(S ) =
-Σn
1p(xi) log2(p(xi)),其中 p(0); p(1) 表示在这个 01 串中 0 和 1 出现的占比。
比如,对于 S = 100 来说,信息熵 H(S ) = -1 3 log2(1 3) - 23log2(2 3) - 2 3 log2(2 3) =
1:3083。对于一个长度为 23333333 的 01 串,如果其信息熵为 11625907:5798,
且 0 出现次数比 1 少,那么这个 01 串中 0 出现了多少次?
 

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

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

闽ICP备14008679号