Олимпиадный тренинг

Задача . Обработка текста_Вычисление энтропии


Задача

Темы:
Одной из характеристик языка/текста является его энтропия.
Определение:
Пусть задано  распределение вероятностей \(P=\{p_1,p_2, \cdots,p_k\}, p_1,p_2, \cdots,p_k\geq0, p_1+p_2+\cdots p_k=1\)
Определим величину  \(H(P)=-(p_1\cdot ln(p_1)+p_2\cdot ln(p_2)+\dots+p_k\cdot ln(p_k)) \), причём будем считать, что \(0\cdot ln(0) =0\)
Величина \(H(P) \) называется энтропией, отвечающей за распределение вероятностей P
В информатике, вместо натурального логорифма ислользуют двоичный логафирим и измеряют энтропию в битах.
Принято считать, что энтропия русского алфавита приблизительно равна 4,35 бита
Определите энтропию для одной из сказок А.С.Пушкина
Для текста из файла skazka_01.txt  определи частоты букв русского алфавита (зз буквы).
На основании частот определите вероятности и вычислите энтропии в битах.
Для вычисления \(log_2(x)\) можно использовать функцию из библиотеке math с вызовом math.log(x,2)
В ответе укажите значение энтропии в битах с округлением до сотых (для выделения дробной части использовать точку)

time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
Python4
Комментарий учителя