1. В приведенном коде ошибка. Не хватает ";" в третьей строке снизу. 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
б) Формула Шеннона:
Учитывает возможную неодинаковую вероятность сообщений в наборе
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 дней)