Изменения

Перейти к: навигация, поиск

Арифметическое кодирование

1754 байта добавлено, 00:55, 24 декабря 2011
Нет описания правки
while (segment[i].character != eof)
</code>
=== Замечание ===
Ккодировщику и декодировщику должно быть известно, когда завершать работу. Для этого можно передавать в качестве аргумента длину текста или символ конца файла, после которого процесс должен быть остановлен.
== Пример работы ==
Рассмотрим в качестве примера строку <tex>abacaba</tex>
=== Декодирование ===
Код: <tex>0.411471</tex>
[[Файл:decode1_png.png|thumb|right|200px|Пример работы декодировщика ]]
{|class="wikitable"
!Декодируемый символ||Код
|-
|<p style="text-align:center;"><tex>a</tex></p>||<p style="text-align:center;"><tex>0.411471</tex></p>
|-
|<p style="text-align:center;"><tex>b</tex></p>||<p style="text-align:center;"><tex>0.720074</tex></p>
|-
|<p style="text-align:center;"><tex>a</tex></p>||<p style="text-align:center;"><tex>0.520259</tex></p>
|-
|<p style="text-align:center;"><tex>c</tex></p>||<p style="text-align:center;"><tex>0.910454</tex></p>
|-
|<p style="text-align:center;"><tex>a</tex></p>||<p style="text-align:center;"><tex>0.373178</tex></p>
|-
|<p style="text-align:center;"><tex>b</tex></p>||<p style="text-align:center;"><tex>0.653061</tex></p>
|-
|<p style="text-align:center;"><tex>a</tex></p>||<p style="text-align:center;"><tex>0.285714</tex></p>
|}
=== Замечание ===
При декодировании текста можно не только нормализовывать рабочий отрезок и текущий код, но и уменьшать рабочий отрезок (аналогично кодированию), не изменяя значение кода.
=== Декодирование (второй способ)===
113
правок

Навигация