ВУЗы и колледжи

Арифметическое кодирование слова {мама!} Без скобок

.
Ivan Burac
Ivan Burac
604
сходи в дурдом
Cергей Богданов
Cергей Богданов
5 159
Лучший ответ
Ivan Burac У алкаша не спрашивали
Какой предмет? Программирование? Информатика?
Для арифметического кодирования слова {мама!}, без учета скобок, нужно выполнить следующие шаги:

1. Создать алфавит, состоящий из символов {м, а, !};
2. Создать частотный словарь символов, указав частоту их встречаемости в слове {мама!}:
- символ м встречается 2 раза;
- символ а встречается 2 раза;
- символ ! встречается 1 раз;
3. Вычислить вероятности для каждого символа, разделив частоты на общее число символов:
- вероятность символа м = 2 / 5 = 0,4;
- вероятность символа а = 2 / 5 = 0,4;
- вероятность символа ! = 1 / 5 = 0,2;
4. Создать интервалы для каждого символа на основе его вероятности:
- интервал для символа м: [0; 0,4);
- интервал для символа а: [0,4; 0,8);
- интервал для символа !: [0,8; 1);
5. Создать стартовый интервал [0; 1];
6. Разделить стартовый интервал на подынтервалы, соответствующие интервалам каждого символа, умножив длину стартового интервала на вероятность каждого символа. Получим следующие подынтервалы:
- подынтервал для символа м: длина = 0,4, начало = 0;
- подынтервал для символа а: длина = 0,4, начало = 0,4;
- подынтервал для символа !: длина = 0,2, начало = 0,8;
7. Взять интервал для всего слова как пересечение всех подынтервалов. Получим следующий интервал: [0,8; 0,864);
8. Преобразовать интервал в последовательность битов, используя двоичное разложение числа, соответствующего концу интервала на заданной точности. Например, если используется точность 16 битов, то числа 0,8 и 0,864 должны быть преобразованы в двоичные последовательности "1100110000000000" и "1100111000000000" соответственно.
9. Получившуюся последовательность битов можно записать в файл или передать по сети как сжатый результат кодирования слова {мама!}.
10. Для декодирования достаточно восстановить интервал, используя вероятности символов и битовую последовательность, затем выделить из интервала символ и повторить процедуру для оставшихся символов слова.
На
Настёна
9 136
Ivan Burac Это шенано фано а не арифметическое кодирование