当前位置:   article > 正文

(第十四届蓝桥真题)01串的熵

01串的熵

分析:这道题只要看明白了题意直接暴力即可,先枚举0的个数cnt0,然后1的个数就是23333333-cnt0,那么我们直接计算这个对应的信息熵即可,注意精度取到1e-4即可

结果为:11027421

代码:

  1. #include<iostream>
  2. #include<cmath>
  3. #include<queue>
  4. #include<cstdio>
  5. #include<algorithm>
  6. using namespace std;
  7. double cal(int cnt0,int cnt1)
  8. {
  9. double p0=1.0*cnt0/(cnt0+cnt1);
  10. double p1=1.0*cnt1/(cnt0+cnt1);
  11. double ans=1.0*cnt0*(-p0*log2(p0))+1.0*cnt1*(-p1*log2(p1));
  12. return ans;
  13. }
  14. int main()
  15. {
  16. for(int i=0;i+i<=23333333;i++)
  17. if(fabs(cal(i,23333333-i)-11625907.5798)<0.0001)
  18. printf("%d\n",i);
  19. return 0;
  20. }
  21. /*
  22. 11027421
  23. */

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

闽ICP备14008679号