Посчитаем сколько символов в сообщении: На странице 25 строк, в каждой из которых по 60 символов. Следовательно, на одной странице находится 25 х 60 = 1500 символов. Всего в сообщении 3 страницы, поэтому весь текст состоит из 1500 х 3 = 4500 символов. Определим сколько бит в исходном тексте. 1 байт = 8 бит, следовательно, 1125 байт = 9000 бит. В тексте, занимающем 9000 бит 4500 символов, следовательно, на 1 символ приходится 9000 : 4500 = 2 бита. При х битного бинарного кода можно закодировать 2 ^ 2 = 4 комбинации. ответ: в искомом алфавите 4 символа.
Дано: Страниц - 3 Строк - 25 Символов в строке - 60 Объём всего - 1125 байт Формулы: Нахождение общего количество символов: Страницы*Строки*Символов в строке=Общее количество символов Перевод из байт в биты: байты*8=биты Вычисление мощности алфавита: 2^b>=A (где A-мощность алфавита, b-количество бит, приходящееся на 1 символ) Решение: Вычислим общее количество символов: 3(страницы)*25(строки)*60(символы)=4500 символов Теперь вычислим число бит, выделяемое на хранение 1 символа: 1125 байт=9000 бит 9000(бит)/4500(символов)=2 бит Нахождение мощности алфавита: 2^2=4 символа ответ: 4
Код:
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int randFloatTo(float x)
{
float ret = static_cast <float> (rand()) / (static_cast <float> (RAND_MAX/x));
return ret;
}
int main()
{
srand(time(NULL));
int size;
cout << "Размер массива: ";
cin >> size;
cout << endl << "Массив:" << endl;
float arr[size];
for (int i = 0; i < size; i++) {
arr[i] = randFloatTo(rand());
cout << arr[i] << ' ';
}
return 0;
}