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