我有一些长字符串(~ 1.000.000 个字符)。每个字符串仅包含定义字母表中的符号,例如
A = {1,2,3}
示例字符串
string S1 = "1111111111 ..."; //[meta complexity] = 0
string S2 = "1111222333 ..."; //[meta complexity] = 10
string S3 = "1213323133 ..."; //[meta complexity] = 100
Q我可以使用什么样的措施来量化这些字符串的复杂性?我可以看到 S1 没有 S3 复杂,但如何从 .NET 以编程方式做到这一点?任何算法或指向工具/文献的点都将不胜感激。
Edit
我尝试了香农熵,但事实证明它对我来说并没有多大用处。我也会有同样的H这些序列的值AAABBBCCC and ABCABCABC and ACCCBABAB and BBACCABAC
This is what I ended up doing https://stackoverflow.com/a/12116265/706456
使用标准技术(例如 zip)压缩字符串可以很好地表明复杂性。
良好的压缩率 ≈ 较低的复杂度
不好的压缩率 ≈ 更高的复杂度
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)