48
правок
Изменения
Оформление второго псевдокода в виде функции
# Повторим пункт (3) до конца входного потока.
# Выберем любое число из получившегося отрезка, которое и будет результатом арифметического кодирования.
'''double''' ArithmeticCoding (s: '''string'''):
left = 0
right = 1
# Выберем на отрезке <tex>[0; 1)</tex>, разделенном на части, длины которых равны вероятностям появления символов в тексте, подотрезок, содержащий входное вещественное число. Символ, соответствующий этому подотрезку, дописываем в ответ.
# Нормируем подотрезок и вещественное число.
# Повторим пункты 1{{---}}2 до тех пор, пока не получим ответ (до конца файла).
<code>
'''dostring'''ArithmeticCoding (code: '''double'''): s = "" '''for''' i = 1 to length '''for''' j = 1 '''to''' n '''if''' code >= segment[ij].left '''and''' code < segment[ij].right write( s = s + segment[ij].character) code = (code – segment[ij].left) / (segment[ij].right – segment[ij].left) '''break''' '''whilereturn''' (segment[i].character != eof)s
</code>