|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
19.03.2013, 19:04 | #1 |
Новичок
Джуниор
Регистрация: 28.02.2013
Сообщений: 2
|
Pascal. нужно написать программу,которая подсчитывает величину информационной энтропии
по формуле Шеннона. вот про нее. http://ru.wikipedia.org/wiki/%D0%98%...BF%D0%B8%D1%8F
т.е. если текст представляет из себя полную бессмыслицу, вроде - СУХЕРРОБЬДЩ ЯЫХВЩИ-ЮАЙЖТЛФВНЗАГФО-ЕНВШТЦР, то величина ее энтропии должна быть максимальной, если текст более упорядочен - ВЕСЕЛ ВРАТЬСЯ НЕ СУХОМ И НЕПО (но смысла не несет) , то энтропия будет меньше и наконец в нормальном тексте она будет минимальна. реально ли написать такую программу вообще? |
19.03.2013, 21:31 | #2 |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
Точно вычислить - вопрос сложный, а оценить - это делает любой архиватор.
|
19.03.2013, 23:28 | #3 |
Участник клуба
Регистрация: 23.12.2010
Сообщений: 1,129
|
А как ты отличаешь "более упорядоченный" текст от "нормального", если с точки зрения распределения символов алфавита они выглядят одинаково, а значит и энтропия отличаться не будет? )
|
20.03.2013, 09:36 | #4 | |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
Цитата:
Кроме символов есть еще их пары, тройки, четверки и т.д. И они также вносят немалый вклад в энтропию. Как-то, помнится, попытался написать "генератор псевдотекста", для чего проанализировал несколько десятков Мбайт текста на естественном языке (русском) и подсчитал вероятность символов, пар и троек. Затем составил программу, которая при генерации выхода придерживалась найденных соотношений. Но полученный таким образом "текст" примерно вдвое хуже сжимался архиватором, что говорит о том, что энтропии в нем было существенно больше, чем в аналогичном объеме обычного текста. А если бы учитывалось только распределение одиночных символов, разница была бы еще больше. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Нужно написать программу на C#, которая удаляет из текста все слова | igrik | Помощь студентам | 2 | 16.07.2013 18:13 |
Написать программу, которая проверяет(Pascal) | xhatex | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 23.11.2012 00:57 |
Написать программу которая в зависимости от веденого с клавиатуры числа(C++, Pascal) | Armin van Buuren | Помощь студентам | 8 | 03.05.2012 21:47 |
Нужно написать программу матрица n*m {0,1} и величину блока. | Senik | Общие вопросы по Java, Java SE, Kotlin | 3 | 31.12.2011 02:10 |
Написать программу которая для заданного символьного ряда подсчитывает количество слов! | komarvl | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 4 | 11.12.2009 01:42 |