Каждый аспирант кафедры "Информационные системы" изучает только один из трех языков: английский, немецкий или французский. Причем 30 аспирантов не изучают английский язык. Информационный объем сообщения "Аспирант Петров изучает английский язык" равен 1 + log23 бит. Количество информации, содержащееся в сообщении "Аспирант Иванов изучает французский язык", равно двум битам. Иностранный студент, приехавший в университет, знает только немецкий язык. Найдите число аспирантов кафедры, с которыми сможет общаться иностранный студент.
2. Немного изменим ваш код и получим искомое значение x
Искомое число х = 16293
var
x, y, a, b, k: integer;
begin
k:=10000;
repeat
x:=k;
a := 0; b := 0; y := 1;
while x > 0 do
begin
if (x mod 10) mod 2 = 0
then
a := a * 10 + x mod 10
else begin
y := y * 10;
b := b * 10 + x mod 10
end;
x := x div 10
end;
a := a * y + b;
k := k + 1;
until a = 26391;
writeln(a:8, k-1:8);
end.
Количество информации определяется по формулам Ральфа Хартли и Клода Шеннона.
1)
а) Формула Хартли:
Получения информации рассматривается как выбор одного сообщения из конечного наперёд заданного множества из N равновероятных сообщений, а количество информации I, содержащееся в выбранном сообщении, определял как двоичный логарифм N.
I = log2N
б) Формула Шеннона:
Учитывает возможную неодинаковую вероятность сообщений в наборе
I = — ( p^1log^2 p1 + p2 log^2 p2 + . . . + p^N log^2 p^N),
где p^i — вероятность того, что именно i-е сообщение выделено в наборе из N сообщений.
Считаем по фомуле Хартли
подсчитаем N,
N = 31 * 12 = 372 (дней 31) или 30 * 12 =360 (дней 30)
Сначала вычислим 2 ^ i:
2 ^ i = (31* 12) 372.
2^i = (30* 12) 360
вычислим
i = log2(372) = 8.5391 бит.
i = log2(360) = 8.4918 бит. округляем = 8.5
2)
Тоже самое, только нужно прибавить часы в сутках и получить N = (31*12*24) = 8928 (дней 31)
или
(30*12*24) = 8640 дней 30
далее
i = log2(8928) = 13.1241 бит. (31 день)
i = log2(8640) = 13.0768 бит. (30 дней)