В качестве примера равномерного кода можно назвать ASCII-таблицу, где каждому из 256 символов сопоставлено двоичное значение от 00000000 до 11111111. Независимо от вероятности появления символа на его представление отводится 1 байт, или 8 бит. Как известно, национальные языки обладают большой избыточностью, то есть разницей между энтропией источника и максимально возможной энтропией, обусловленной равной вероятностью появления любого символа из алфавита. Например, избыточность русского языка составляет 70%, а английского – 50%. Это в частности означает, что некоторые буквы появляются в тексте гораздо чаще других и поэтому использовать равномерное кодирование нерационально. При неравномерном кодировании часто встречающимся символам сопоставляются более короткие кодовые последовательности, редко встречающимся – более длинные. За счет этого удается значительно сократить объем файла без потерь информации. Существует несколько методов неравномерного кодирования, важнейших из которых является метод Шеннона-Фано. как-то так
procedure oddDec(var a,b:integer); //подпрограмме переданы аргументы a и b //процедура для вычитания в нечётном элементе begin; a:=a-b; end;
procedure NotoddInc(var a,b:integer); //подпрограмме переданы аргументы a и b //процедура для сложения в чётном элементе begin; a:=a+b; end;
begin randomize; readln(a); //ввод a readln(b); //ввод b writeln('Array:'); for i:=1 to 10 do //весь массив begin; ar[i]:=random(-20,80); //случайные числа от -20 до 80 включительно write(ar[i]:4); //вывод if odd(i) then oddDec(ar[i],b) else NotoddInc(ar[i],a); {если нечётное, то первая процедура, иначе вторая. Обращаю внимания на то, что элементы меняются сразу после вывода} end; writeln; writeln('Final array:'); //вывод получившегося массива for i:=1 to 10 do write(ar[i]:4); end.
Пример ввода: 20 10 Пример вывода: Array: 10 16 0 60 23 4 22 -20 4 55 Final array: 0 36 -10 80 13 24 12 0 -6 75
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota
Оформи подписку