48
правок
Изменения
м
Добавление комментариев к коду, выделение ключевых слов
# Выберем любое число из получившегося отрезка. Это и будет результат арифметического кодирования.
left = 0<span style="color:green"> // Левая граница [left; right) отрезка изначально равна 0 </span> right = 1<span style="color:green"> // Правая граница [left; right) отрезка изначально равна 1 </span> '''while ''' !eof '''read'''(symb) newRight = left + (right - left) * segment[symb].right <span style="color:green"> //segment[symb] — подотрезок отрезка [0; 1), //соответствующий символу symb </span>
newLeft = left + (right - left) * segment[symb].left
left = newLeft
right = newRight
ans = (left + right) / 2<span style="color:green"> // В качестве результата взята средняя точка отрезка [left; right) </span>
=== Декодирование ===