В качестве примера равномерного кода можно назвать ASCII-таблицу, где каждому из 256 символов сопоставлено двоичное значение от 00000000 до 11111111. Независимо от вероятности появления символа на его представление отводится 1 байт, или 8 бит. Как известно, национальные языки обладают большой избыточностью, то есть разницей между энтропией источника и максимально возможной энтропией, обусловленной равной вероятностью появления любого символа из алфавита. Например, избыточность русского языка составляет 70%, а английского – 50%. Это в частности означает, что некоторые буквы появляются в тексте гораздо чаще других и поэтому использовать равномерное кодирование нерационально.
При неравномерном кодировании часто встречающимся символам сопоставляются более короткие кодовые последовательности, редко встречающимся – более длинные. За счет этого удается значительно сократить объем файла без потерь информации. Существует несколько методов неравномерного кодирования, важнейших из которых является метод Шеннона-Фано.
Надеюсь понятно?
Сместиться на (–2, –3) Сместиться на (3, 2) Сместиться на (–4, 0)
конец
Для упрощения объединим команды в одну, то есть сложим все X и все Y, чтобы узнать, как смещается чертёжник за один повтор цикла:
X = -2 + 3 - 4 = -3
Y = -3 + 2 + 0 = -1
То есть три команды в цикле мы можем заменить на "Сместиться(-3, 1)"
Цикл совершает три повтора, то есть по оси X чертежник сместится на -3*3 = -9, а по оси Y на -1*3 = -3
В итоге чертежник окажется в точке, которая смещена от исходной на (-9, -3), и чтобы вернуться в исходную, ему нужно выполнить команду "Сместиться на (9, 3).