Теория информации

0.71753375 * 2 - 1 = 0.4350675. Полученное значение принадлежит диапазону [0.4, 0.5), который соответствует символу W . Затем, также полученное число 0.4350675 следует нормировать, что в общем случае выполняется по формуле: где Code – текущее значение кода. Например , пользуясь этой формулой применительно к коду 0.71753375. Формула выдает значение, в точности совпадающее с полученным значением. Для S (первого символа): Code = (0.71753375 - 0.5) / (1 - 0.5) = 0.4350675 (которое берется как 0,5), которое в точности совпадает с предыдущей схемой вычисления. Аналогичным образом выполняется декодирование всех символов строки. В таблице 5.2 представлены коды, вычисляемые при декодировании символов. Здесь можно заметить, что процесс декодирования в данном случае можно остановить, если значение кода равно нулю. Таблица 5.2. Вычисление кодов при декодировании Символ Code-Low Область S 0.71753375 – 0.5 = 0.21753375 / 0.5 = 0.4350675 W 0.4350675 – 0.4 = 0.0350675 / 0.1 = 0.350675 I 0.350675 – 0.2 = 0.150675 / 0.2 = 0.753375 S 0.753375 – 0.5 = 0.253375 / 0.5 = 0.50675 S 0.50675 – 0.5 = 0.00675 / 0.5 = 0.0135 _ 0.0135 – 0 = 0.0135 / 0.1 = 0.135 M 0.135 – 0.1 = 0.035 / 0.1 = 0.35 I 0.35 – 0.2 = 0.15 / 0.2 = 0.75 S 0.75 – 0.5 = 0.25 / 0.5 = 0.5 S 0.5 – 0.5 = 0 / 0.5 = 0 Алгоритм сжатия можно представить следующим образом: l0=0; h0=1; i=0; while(not DataFile.EOF()) {

RkJQdWJsaXNoZXIy MTY0OTYy