![]() |
1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
![]() ![]() |
![]() |
18192123 |
![]()
Сообщение
#1
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
Требуется определить энтропию сообщения при условии независимости символов и при условии попарной зависимости символов..
Что касается 1-го случая - H = -сумма (i=1,m)pi * log pi, логарифм берётся по основанию два, а pi - вероятность появления i-го символа.. Здесь проблем не возникает...нахождение вероятности не вызывает трудностей.. Во 2-м случае: H = -1/2*сумма (i) сумма(j) pij * log pij, pij - вероятность появления пары символов. И как раз с этой вероятностью pij проблемка - не пойму, как её получить..
Объясните пожалуйста, а что нужно делать, чтобы найти вероятность pij (при условии попарной зависимости символов)? |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Цитата а что нужно делать, чтобы найти вероятность pij (при условии попарной зависимости символов)? Собирать статистику, насколько часто в языке, на котором написано сообщение, встречаются те или иные двухбуквенные сочетания. Для русского языка может быть полезной вот это: Новый частотный словарь русской лексики (приведены количества встреченных сочетаний двух букв... Те сочетания, которые не были встречены, отсутствуют: их вероятность = 0. Собственно вероятности можно получить если делить число совпадений для каждого двухбуквенного сочетания на общую сумму всех совпадений...). Для других языков - надо искать (или составлять самостоятельно) другие частотные словари... |
18192123 |
![]()
Сообщение
#3
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
Собирать статистику, насколько часто в языке, на котором написано сообщение, встречаются те или иные двухбуквенные сочетания. Для других языков - надо искать (или составлять самостоятельно) другие частотные словари... У меня сообщения на голландском.. И что будет значить составлять самостоятельно частотный словарь (составить всё возможные пары, проверить какие из них и по сколько раз встречаются в сообщении, и тогда, чтобы получить вероятность, количество конкретной пары поделить на общее количество возможных пар)? Сообщение отредактировано: 18192123 - 21.02.2009 15:06 |
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
(составить всё возможные пары, проверить какие из них и по сколько раз встречаются в сообщении, и тогда, чтобы получить вероятность, количество конкретной пары поделить на общее количество возможных пар)? Нет... У тебя не сообщение, которое само по себе, а сообщение на голландском языке Значит, тебе надо будет взять несколько объемных текстов на этом языке, и проанализировать вероятность, с которой в текстах встречаются все двухбуквенные комбинации... Чем объёмнее тексты (и чем их больше), тем ближе к истине будет такой словарь... Можно попробовать найти частотные словари для голландского языка... |
18192123 |
![]()
Сообщение
#5
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
Нет... У тебя не сообщение, которое само по себе, а сообщение на голландском языке Значит, тебе надо будет взять несколько объемных текстов на этом языке, и проанализировать вероятность, с которой в текстах встречаются все двухбуквенные комбинации... Чем объёмнее тексты (и чем их больше), тем ближе к истине будет такой словарь... Можно попробовать найти частотные словари для голландского языка... А если не все комбинации встретятся? Такое может быть? |
volvo |
![]()
Сообщение
#6
|
Гость ![]() |
Если не встретятся при просмотре достаточно больших объемов - значит, их вероятности стремятся к нулю.
|
18192123 |
![]()
Сообщение
#7
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
Пытаюсь сформировать массив структур, в котором каждая будет хранить ин-цию о паре символов...
т.е. в TWO[1] хочу получить aa, в TWO[2] - ab и т.д.. а получается "Ь и ф...." Подскажите, как добиться желаемого результата? |
volvo |
![]()
Сообщение
#8
|
Гость ![]() |
Цитата т.е. в TWO[1] хочу получить aa, в TWO[2] - ab и т.д.. Ты по определению этого не добьешься... Потому что char может хранить только один символ, а не строку... Я бы на твоем месте сделал таблицу:struct p и заполнять проще, индекс по вертикали - номер первой буквы от 'a', по горизонтали - номер второй буквы... Только не забудь все буквы привести к одному регистру, и если есть какие-то спец. символы в голландском языке, то и их надо будет учесть... |
18192123 |
![]()
Сообщение
#9
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
Появились проблемы с записью в файл значения энтропии..
Скажите пожалуйста, в чём дело? Сообщение отредактировано: volvo - 26.02.2009 22:36 Эскизы прикрепленных изображений ![]() |
volvo |
![]()
Сообщение
#10
|
Гость ![]() |
Оберни вызов функции fopen обработкой ошибки, и посмотри, что будет:
FILE *f; А теперь внимательно посмотри, чему у тебя присваивается fileOut... |
Altair |
![]()
Сообщение
#11
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
-------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
18192123 |
![]()
Сообщение
#12
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
volvo,Altair, спасибо!
|
![]() ![]() |
![]() |
Текстовая версия | 19.07.2025 15:03 |