| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > генерация биграмм |
| Автор: darel86 20.3.2010, 10:27 |
| Здравствуйте. Подскажите пожалуйста, как генерировать текст на основе вероятности встречаемости символов и биграмм(все значения вероятностей известны,естьи значения вероятности триграмм)? Например текст без вероятности встречаемости символов можно генерировать так : берём например ГСЧ,генерируем число, берём его по модулю 32,из массива добавляем символ. А вот с вероятностью как?Помогите пожалуйста. |
| Автор: GoldFinch 20.3.2010, 11:54 |
| например задать вероятности как есть массив целых положительных чисел (таблица вероятностей), брать из ГСЧ число от 0 до N, где N - сумма всех чисел в массиве, потом определять какому символу оно соответствует т.е. если есть 3 символа с вероятностями 10, 30 и 20 генерим 0< x < (10+30+20), допустим 15, и видим что оно соответствует 2му символу: 10<15<10+30 |
| Автор: darel86 22.3.2010, 20:09 |
| Спасибо! Да, так и нужно для частоты встречаемости символов. Уже пишу. А как быть с биграммами? Там матрица 32х32 сумма элементов 4985. В-принципе можно брать строку текущего символа, вычислить сумму строк до него и после, в этих пределах потом генерировать число, с последующим выбором, который вы предложили.Но как быть с пробелом его в матрица нет, блин.Или вот: смотреть если "не пробел",то генерить с учётом биграмм, если "пробел",то "пробел" )))). Может так.Или есть ошибки в моей логике? |
| Автор: darel86 29.3.2010, 09:57 |
| Так,текст с учётом биграмм у меня генерируется,но вот проблема,частота встречаемости отдельных символов изменилась. Ну это и понятно, ведь генерируется с учётом биграмм, а не отдельных символов. Может кто подскажет,как генерировать,чтобы генерация с учётом биграмм выдовала эталонную частоту встречаемости символов. |