pascalabc.net
begin
var s : = readinteger('s=');
for var m10 : = 0 to s div 10 do
for var m5 : = 0 to (s - 10 * m10) div 5 do
for var m2 : = 0 to (s - 10 * m10 - 5 * m5) div 2 do
for var m1 : = 0 to s - 10 * m10 - 5 * m5 - 2 * m2 do
if m10 * 10 + m5 * 5 + m2 *2 + m1 = s then
$'{m10} x 10 + {m5} x 5 + {m2} x 2 + {m1} x 1'.println
end.
в качестве примера равномерного кода можно назвать ascii-таблицу, где каждому из 256 символов сопоставлено двоичное значение от до . независимо от вероятности появления символа на его представление отводится 1 байт, или 8 бит. как известно, национальные языки большой избыточностью, то есть разницей между энтропией источника и максимально возможной энтропией, обусловленной равной вероятностью появления любого символа из алфавита. например, избыточность языка составляет 70%, а – 50%. это в частности означает, что некоторые буквы появляются в тексте гораздо чаще других и поэтому использовать равномерное кодирование нерационально.
при неравномерном кодировании часто встречающимся символам сопоставляются более короткие кодовые последовательности, редко встречающимся – более длинные. за счет этого удается значительно сократить объем файла без потерь информации. существует несколько методов неравномерного кодирования, важнейших из которых является метод шеннона-фано.
надеюсь понятно?
Поделитесь своими знаниями, ответьте на вопрос: