Известно что в ящике лежат 20 карандашей из них 10 красных 4 синих 4 желтых и 2 зеленых. какое количество информации несёт сообщение о цвете вынутого карандаша?
Количество информации можно определить как -log2(p), где p - вероятность данного события. Оно измеряется в битах. Также можно использовать равносильное выражение log2(1/p) Вероятность взятия чёрного шара равна 10/20 = 0,5, белого - 4/20 = 0,2, жёлтого такая же - 0,2, красного - в 2 раза меньше - 0,1. Значит, если мы взяли чёрный шар, мы получили кол-во информации log2(1/0,5) = log2(2) = 1 бит, если белый, то log2(1/0,2) = log2(5) = 2,3219 бит если жёлтый, то столько же 2,3219 бит если красный, то log2(1/0,1) = log2(10) = 3,3219 бит
Чем меньше вероятность события, тем большее количество информации мы получаем, когда это событие наступает.
У меня получилось вот что (смотри скриншоты листинга программы и результата работы этой программы): uses Crt; const n = 10; var A: array [1..n] of integer; i: integer; begin ClrScr; Randomize; WriteLn ( ' Massiv I: '); for i:=1 to n do begin A[i] := 1+random(n); Write (A[i]:4); end; WriteLn; WriteLn ( ' Massiv II: '); for i:=1 to n do begin if (A[i] mod 2 =0) then A[i]:=0 else A[i]:=3*A[i]; Write (A[i]:4); end; ReadLn; end.
Program q1; uses crt; const n=10; var i,j:integer; mass:array [1..n] of integer; countNum:integer; // переменная для хранения количества нечетных чисел proizv:integer; // переменная для хранения произведения нечетных чисел BEGIN proizv:=1; // так как, изначально равно 0, а при умножении на 0 будет всегда 0 {создание последовательности n целых чисел} Writeln('Случайные целые числа: '); for i:=1 to n do begin mass[ i ]:=random(9)+1; //присваеваем переменной случайное значение от 1 до 10 write(inttostr(mass[ i ])+', '); end; {Вычисление произведения и количества нечетных чисел} for i:=1 to n do if mass[ i ] mod 2 <> 0 then //проверяем не четное-ли число, если да, то.. . begin inc(countNum); //увеличиваем на один кол-во нечетных чисел proizv:=proizv*mass[ i ]; // высчитываем произведение end; {Вывод результатов} writeln; writeln('Всего нечетных чисел: '+inttostr(countNum)); writeln('Их произведение: '+inttostr(proizv)); END.
Также можно использовать равносильное выражение log2(1/p)
Вероятность взятия чёрного шара равна 10/20 = 0,5, белого - 4/20 = 0,2, жёлтого такая же - 0,2, красного - в 2 раза меньше - 0,1.
Значит, если мы взяли чёрный шар, мы получили кол-во информации log2(1/0,5) = log2(2) = 1 бит,
если белый, то log2(1/0,2) = log2(5) = 2,3219 бит
если жёлтый, то столько же 2,3219 бит
если красный, то log2(1/0,1) = log2(10) = 3,3219 бит
Чем меньше вероятность события, тем большее количество информации мы получаем, когда это событие наступает.