Количество информации можно определить как -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 бит
Также можно использовать равносильное выражение 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 бит
Вот функция возвращающая дни без осадков
C#Выделить код1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 private int[] NetOsadkov(ref int[]Pogoda) { int[] error = {-1}; int[] PogodaBezOsadkov = { 0 }; List<int> osadki = new List<int>(); int NetOsadkov = 0; if (Pogoda.Length < 31) { return error; } for (int i = 0; i < Pogoda.Length;i++ ) { if (Pogoda[i] == NetOsadkov) { osadki.Add(i+1); } } PogodaBezOsadkov = osadki.ToArray(); return PogodaBezOsadkov; }Проверяем..
C#Выделить код1 2 3 4 5 6 7 8 int[] JanuaryWeather = {123,4535,756,45,0,67,22,3453,765,35,456,35,0,35,45,76,6,567,35,6543,0,35,456,58,467,4657,458,48,0,67,745}; string result = string.Empty; foreach (int val in NetOsadkov(ref JanuaryWeather)) { result += val.ToString() + ','; } MessageBox.Show(result+" "+"Января была погода без осадков");