1) Определим шанс вытащить подосиновик. Всего грибов 11+19 = 30, тогда шанс составляет 19/30 2) Существует формула Хартли для оценки количества информации, получаемого при свершении одного из равновероятных событий. Это как раз наш случай - мы наугад вытаскиваем любой гриб. Не будем разбирать эту формулу, её можно найти в учебниках и в Интернет, а воспользуемся практическим нахождения количества информации на её основе. Нужно просто взять логарифм по основанию 2 от величины, обратной искомому шансу свершения события, т.е. ㏒₂(30/19) ≈ 0.66. Это и есть количество информации в битах. Если с логарифмами проблема, можно поставить вопрос иначе: найти такой показатель степени числа 2, после возведения в которую получится 30/19 ≈ 1.579. Мы знаем, что 2⁰=1, 2¹=2, т.е. ответ должен быть где-то между 0 и 1. Если нужен целочисленный ответ - принимаем 1 бит.
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main() {
int n;
cin >> n; // размерность
int ar[n]; // массив
int a = -100;
int b = 100; // промежуток чисел для заполнения массива [а; b]
srand(time(NULL)); // функция для генерации случайных чисел
for (int i=0; i<n; i++){
ar[i] = rand()%(b-a+1)+a;
cout << ar[i] << " ";
} cout << endl; // заполняем массив
int k=0; // переменная для подсчёта положительных элементов
for (int i=0; i<n; i++){
if (ar[i] > 0) k++;
} cout << endl; // считаем количество положительных элементов
cout << "Количество положительных элементов массива: " << k;
return 0;
}