Понятно, что 90 = Р и 93 = С - все четыре слова заканчиваются на эти буквы. Теперь смотрим: есть два слова, начинающиеся на одну букву: МАРС и МОРС. Ищем среди последовательностей две, которые тоже начинаются на одинаковый код. Это 80 84 90 93 и 80 05 90 93. Значит, 80 = М
Теперь ищем последовательности для МАРС и БАРС - у них совпадает вторая буква. Это 80 05 90 93 и 10 05 90 93, откуда имеем 05 = А и 10 = Б, а код 84 = О
Оставшаяся последовательность 87 62 90 93 для слова ПИРС даёт нам буквы 87 = П и 62 = И
Таким образом, СИРОП кодируется так:
93 62 90 84 87
var k1,k2,k3,k4,k:integer;
begin
writeln('Перед вами программа, которая умеет вычислять количество информации');
writeln('по выбранному наугад шарику из мешка.');
writeln('Введите число шаров белого цвета:');
readln(k1);
writeln('Введите число шаров чёрного цвета:');
readln(k2);
writeln('Введите число шаров синего цвета:');
readln(k3);
writeln('Введите число шаров красного цвета:');
readln(k4);
k:=k1+k2+k3+k4;
if k1<>0 then
writeln('Во фразе «Выпал белый шар» содержится ',log2(k/k1):4:1,' бит(а) информации');
if k2<>0 then
writeln('Во фразе «Выпал чёрный шар» содержится ',log2(k/k2):4:1,' бит(а) информации');
if k3<>0 then
writeln('Во фразе «Выпал синий шар» содержится ',log2(k/k3):4:1,' бит(а) информации');
if k4<>0 then
writeln('Во фразе «Выпал красный шар» содержится ',log2(k/k4):4:1,' бит(а) информации');
end.
Пример:
Перед вами программа, которая умеет вычислять количество информации
по выбранному наугад шарику из мешка.
Введите число шаров белого цвета:
100
Введите число шаров чёрного цвета:
0
Введите число шаров синего цвета:
200
Введите число шаров красного цвета:
100
Во фразе «Выпал белый шар» содержится 2.0 бит(а) информации
Во фразе «Выпал синий шар» содержится 1.0 бит(а) информации
Во фразе «Выпал красный шар» содержится 2.0 бит(а) информации