Из условия Фано следует, что в префиксном неравномерном двоичном коде, предусматривающем однозначное декодирование, ни одно кодовое слово не может быть началом другого.
Таким образом, оставшиеся три кода не могут быть началом кода буквы Б, и началами кодов друг друга.
То есть коды 0 и 00 отпадают сразу, т.к. это начала буквы Б.
Если предположить, что один из кодов равен 1, и что нам нужны кратчайшие коды, значит оставшиеся коды могут быть только 01 и 011.
Если предположить, что коды двузначны, тогда кодами могут быть 01, 10 и 11.
В первом случае суммарная длина кодов равна 1+2+3+3 = 9, во втором случае - 2+2+2+3 = 9.
Оба варианта подходят, кратчайшая суммарная длина - 9
Var a: array[1..n] of integer; k, i, m: byte; min: integer;
begin Write('Razmer massiva: '); Readln(k); if (k < 0) or (k > 100) then begin Writeln('Razmer dolzhen byt bolshe 0 i menshe 100'); Readln; Exit; end; Randomize; Writeln('Ishodn. massiv: '); for i:=1 to k do begin a[i]:=Random(101)-50; write(a[i]:4); end; min:=a[1]; for i:=2 to k do if a[i] < min then begin min:=a[i]; m:=i; end; a[m] := a[1]; a[1] := min; Writeln; Writeln('Min element = ', min:4, ' v posicii ', m:3); Writeln('Rezult. massiv: '); for i:=1 to k do write(a[i]:4); readln; end.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota
Оформи подписку