48
 правок
Изменения
→Кодирование
# Повторим пункт (3) до конца входного потока.
# Выберем любое число из получившегося отрезка, которое и будет результатом арифметического кодирования.
== Псевдокод ==
<tex>s</tex> {{---}} текст, подаваемый на вход
<tex>left</tex>, <tex>right</tex> {{---}} границы отрезка, содержащего возможный результат арифметического кодирования
<tex>segment[i].left</tex>, <tex>segment[i].right</tex> {{---}} границы подотрезка отрезка <tex>[0; 1)</tex>, соответствующего символу <tex>i</tex>
 '''double''' ArithmeticCoding (s: '''string'''):
     left = 0
     right = 1
     '''for''' i = 0 '''to''' length(s)-1
         newLeft = left + (right - left) * segment[symb].left
         left = newLeft
