Количество информации определяется по формулам Ральфа Хартли и Клода Шеннона.
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 дней)
Для начала смотрим что выходит при К= 36, выходит 5
Анализируем функцию F. Это линейная функция наподобии Фибоначи, значит ответом будет некий один отрезок из К
Потом немножко дорабатываем программу и смотрим на результат
var
i, K, counter: integer;
function F(x: integer): integer;
begin
if x < 2 then
F := 1
else F := F(x - 1) + 2 * F(x - 2);
end;
begin
for K := 0 to 100 do
begin
i := 28;
// readln(K);
while (i > 0) and (F(i) > K) do
i := i - 1;
if i = 5 then begin
counter := counter + 1;
writeln(counter, ') K = ', K);
end;
end
end.
Вывод
1) K = 21
2) K = 22
3) K = 23
4) K = 24
5) K = 25
6) K = 26
7) K = 27
8) K = 28
9) K = 29
10) K = 30
11) K = 31
12) K = 32
13) K = 33
14) K = 34
15) K = 35
16) K = 36
17) K = 37
18) K = 38
19) K = 39
20) K = 40
21) K = 41
22) K = 42
ответ 22