// PascalABC.NET 3.3, сборка 1576 от 16.11.2017 // Внимание! Если программа не работает, обновите версию! function Simple(n:integer):boolean; begin result := true; if n = 1 then result := false; For var i:= 2 to n div 2 do if n mod i = 0 then result:= false; end; begin range(readInteger, ReadInteger).Where(t -> Simple(t)).Print end.
Условие Фано означает, что никакое кодовое слово не может быть началом другого кодового слова. Поскольку буква Н кодируется нулем, значит, мы не можем кодировать Л и М таким образом, чтобы оно начиналось с нуля. Значит, будем кодировать так, чтобы начиналось с единицы. Допустим, Л - 11. Тогда М невозможно закодировать двумя символами. Значит, будем использовать три. Пусть Л - 110, а М - 111. Следовательно: Н = 0 (1 символ) К = 10 (2 символа) Л = 110 (3 символа) М = 111 (3 символа)
Из условия Фано следует, что в префиксном неравномерном двоичном коде, предусматривающем однозначное декодирование, ни одно кодовое слово не может быть началом другого.
Таким образом, оставшиеся три кода не могут быть началом кода буквы Б, и началами кодов друг друга.
То есть коды 0 и 00 отпадают сразу, т.к. это начала буквы Б.
Если предположить, что один из кодов равен 1, и что нам нужны кратчайшие коды, значит оставшиеся коды могут быть только 01 и 011.
Если предположить, что коды двузначны, тогда кодами могут быть 01, 10 и 11.
В первом случае суммарная длина кодов равна 1+2+3+3 = 9, во втором случае - 2+2+2+3 = 9.
Оба варианта подходят, кратчайшая суммарная длина - 9
Ответить на вопрос
Поделитесь своими знаниями, ответьте на вопрос:
Создать программу которая выведет на экран простые числа в диапазоне от n до m.n и m - целые числа, которые вводятся с клавиатуры.
// Внимание! Если программа не работает, обновите версию!
function Simple(n:integer):boolean;
begin
result := true;
if n = 1 then result := false;
For var i:= 2 to n div 2 do
if n mod i = 0 then result:= false;
end;
begin
range(readInteger, ReadInteger).Where(t -> Simple(t)).Print
end.
Пример:
1 100
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97