У меня есть несколько длинных строк (~ 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
Вопрос. Какие меры можно использовать для количественной оценки сложности этих строк? Я вижу, что S1 менее сложен, чем S3, но как я могу сделать это программно из .NET? Будем очень признательны за любой алгоритм или ссылку на инструмент/литературу.
Редактировать
Я попробовал энтропию Шеннона, но оказалось, что она мне не особо полезна. У меня будет одинаковое значение H для этих последовательностей AAABBBCCC и ABCABCABC и ACCCBABAB и BBACCABAC. сильный>
Вот что я в итоге сделал
AAABBBCCC
иABCABCABC
иACCCBABAB
иBBACCABAC
- person oleksii   schedule 22.05.2011