![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
darel86 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 17.3.2010 Репутация: нет Всего: нет |
Здравствуйте.
Подскажите пожалуйста, как генерировать текст на основе вероятности встречаемости символов и биграмм(все значения вероятностей известны,естьи значения вероятности триграмм)? Например текст без вероятности встречаемости символов можно генерировать так : берём например ГСЧ,генерируем число, берём его по модулю 32,из массива добавляем символ. А вот с вероятностью как?Помогите пожалуйста. |
|||
|
||||
GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 15 Всего: 26 |
например задать вероятности как есть массив целых положительных чисел (таблица вероятностей),
брать из ГСЧ число от 0 до N, где N - сумма всех чисел в массиве, потом определять какому символу оно соответствует т.е. если есть 3 символа с вероятностями 10, 30 и 20 генерим 0< x < (10+30+20), допустим 15, и видим что оно соответствует 2му символу: 10<15<10+30 |
|||
|
||||
darel86 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 17.3.2010 Репутация: нет Всего: нет |
Спасибо!
Да, так и нужно для частоты встречаемости символов. Уже пишу. А как быть с биграммами? Там матрица 32х32 сумма элементов 4985. В-принципе можно брать строку текущего символа, вычислить сумму строк до него и после, в этих пределах потом генерировать число, с последующим выбором, который вы предложили.Но как быть с пробелом его в матрица нет, блин.Или вот: смотреть если "не пробел",то генерить с учётом биграмм, если "пробел",то "пробел" )))). Может так.Или есть ошибки в моей логике? |
|||
|
||||
darel86 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 17.3.2010 Репутация: нет Всего: нет |
Так,текст с учётом биграмм у меня генерируется,но вот проблема,частота встречаемости отдельных символов изменилась.
Ну это и понятно, ведь генерируется с учётом биграмм, а не отдельных символов. Может кто подскажет,как генерировать,чтобы генерация с учётом биграмм выдовала эталонную частоту встречаемости символов. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |