Напишите программу или функцию, которая оценивает энтропию Шеннона данной строки.
Если строка содержит n символов, d различных символов, x i - это i- й отдельный символ, а P (x i ) - вероятность того, что этот символ встречается в строке, то наша оценка энтропии Шеннона для этой строки определяется как:
Для оценки в этой задаче мы предполагаем, что вероятность появления символа в строке - это просто число его повторений, деленное на общее количество символов.
Ваш ответ должен быть точным, по крайней мере, до 3 цифр после периода.
Тестовые случаи:
"This is a test.", 45.094
"00001111", 8.000
"cwmfjordbankglyphsvextquiz", 122.211
" ", 0.0
Entropy
считает биты на символ, а не сумму для строки; о хорошо ...