赞
踩
7.01串的熵 - 蓝桥云课 (lanqiao.cn)
问题描述
对于一个长度为n的01串S=12223...an,香农信息熵的定义为 H(S)=-Znp()log2(p()),其中p(0),p(1)表示在这个01 中0和1出现的占比。
比如,对于S=100来说,信息 H(S)-l0g2(请)-号l0g2(3)-号lg2(3) = 1.3083
对于一个长度为23333333的01串如果其信息熵为11625907.5798,且0出现次数比1少那么这个01串中
0出现了多少次?
- import os
- import sys
- import math
- # 请在此输入您的代码
-
- #x为总,i为0出现的次数,j为1出现的次数
- x=23333333
- for i in range(10000000,x//2): #0比1少,肯定0小于总数一半,为了减少计算量从一个较大值开始
- j=x-i
- if round((j/x)* (math.log2(j/x))*j+(i/x)*(math.log2(i/x)*i),4) == -11625907.5798: #*i和j是因为i*i=-1 是题目公式的变式
-
- print(i)
- break
-
-
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。