这将使您的熵计数从0到1.0:
您可能想尝试研究Shannon熵,它是一种应用于数据和信息的熵的度量。实际上,实际上,它几乎是熵的物理公式的直接类似物,如热力学最受接受的解释所定义。
更具体地说,在您的情况下,对于二进制字符串,您可以看到 Binary Entropy
Function
,这是一种特殊情况,涉及数据二进制位中的随机性。
这是由
H(p) = -p*log(p) - (1-p)*log(1-p)
(以2
0*log(0)为底的对数;假设为0)
p您的1(或0)的百分比在哪里;图形是对称的,所以您的答案都是相同的
函数产生的结果如下:
如您所见,如果
p为0.5(1的数量与0的数量相同),则您的熵最大(1.0)。如果
p为0或1.0,则熵为0。
这似乎正是您想要的,对吗?
唯一的例外是您的 1号尺码 案件,可以将其作为例外。但是,对于我来说100%0和100%1似乎不太熵。但是,您可以根据需要实施它们。
而且,这没有考虑到位的任何“排序”。只有它们的总和。因此,重复/回文不会得到任何帮助。您可能要为此添加一个额外的启发式方法。
这是您的其他案例示例:
00:-0 * log(0)-(1-0)* log(1-0)= 0.001:-0.5 * log(0.5)-(1-0.5)* log(1-0.5)= 1.0010:-(1/3)* log(1/3)-(2/3)* log(2/3)= 0.920100:-0.25 * log(0.25)-(1-0.25)* log(1-0.25)= 0.81



