#include <stdlib.h>
#include <time.h>
#include <iostream>
using namespace std;
#define N 16
void main()
{
int randomNumbers[N];
srand(time(NULL));
for (int i = 0;i < N; i++)
{
randomNumbers[i] = rand() % 40 - 20;
cout << "randomNumber[" << i << "] = " << randomNumbers[i] << endl;
}
cout << endl;
int counter = 0;
for (int i = 0; i < N; i++)
{
if (randomNumbers[i] < 0)
{
counter++;
}
}
cout << "counter = " << counter << endl;
}
Определим информационный объём сообщения по формуле I = ki, где I – информационный объем сообщения, k – количество символов в сообщении, i – информационный вес одного символа.
Чтобы вычислить i нам формула N = 2^i, где N – мощность алфавита. В условии сказано, что мощность алфавита – 17 символов. Для кодировки 17 символов потребуется 5 бит. Проверим: 17 = 2^5 = 32. Пятью битами можно кодировать 32 символа, а четырьмя – 16. Нам подходит 5 битов.
Рассчитаем информационный объём сообщения: 45 × 5 = 225 бит.
ответ: 225 бит.