В качестве примера равномерного кода можно назвать ASCII-таблицу, где каждому из 256 символов сопоставлено двоичное значение от 00000000 до 11111111. Независимо от вероятности появления символа на его представление отводится 1 байт, или 8 бит. Как известно, национальные языки обладают большой избыточностью, то есть разницей между энтропией источника и максимально возможной энтропией, обусловленной равной вероятностью появления любого символа из алфавита. Например, избыточность русского языка составляет 70%, а английского – 50%. Это в частности означает, что некоторые буквы появляются в тексте гораздо чаще других и поэтому использовать равномерное кодирование нерационально.
При неравномерном кодировании часто встречающимся символам сопоставляются более короткие кодовые последовательности, редко встречающимся – более длинные. За счет этого удается значительно сократить объем файла без потерь информации. Существует несколько методов неравномерного кодирования, важнейших из которых является метод Шеннона-Фано.
Надеюсь понятно?
const
L = 1;
H = 5;
var
b: array [L..H, L..H] of Integer;
i, j, imax, jmax, bmax: Integer;
begin
Randomize;
for i := L to H do begin
WriteLn;
for j := L to H do begin
b [i, j] := Random (100);
Write (b [i, j] :4);
end;
end;
imax := 1;
jmax := 1;
for i := L to H do begin
for j := L to H do begin
if b [i, j] > b [imax, jmax] then begin
imax := i;
jmax := j;
end;
end;
end;
WriteLn;
Writeln ('Максимальный элемент: b [', imax, ', ', jmax, '] = ', b [imax, jmax]);
ReadLn;
end.
var i:integer;
begin
for i:=100 to 200 do
if i mod 5=0 then write(i,' ')
end.
2
var i,n:integer;
begin
for i:=1 to 100 do
if 100 mod i=0 then n:=n+1;
write('Общее количество делителей 100, включая 1 и само число: ',n)
end.
Если 1 и само число 100 не учитывать, то третья строка сверху должна иметь вид:
for i:=2 to 99 do