С++
-------------------------
Москва - Толя, Санкт-Петербург - Витя, Новгород - Юра, Пермь - Коля, Томск - Алёша.
Диапазон записываемых температур равен:39 - 35 = 4 градусаПри записи с точностью 0,1 градус, число возможных значений температуры в этом диапазоне составляет:4 / 0,1 + 1 = 40 + 1 = 41 значениеЧтобы объяснить, почему так считается, возьмём пример попроще: диапазон 10 градусов (от нуля до 10 градусов), с точностью 5 градусов. При этом, наш диапазон нужно поделить на отрезки длиной в 5. Это и делается операцией деления: 10 / 5 = 2. То есть, будет два таких отрезка, и соответственно, две температуры на концах этих отрезков- это 5 и 10 градусов. Но, кроме этих двух точек- есть ещё одна точка- начало первого отрезка, температура 0 градусов. Вот, чтобы посчитать эту начальную точку, и нужно прибавить единицу. И, общее число возможных температур будет равно 10 / 5 + 1 = 3 (это температуры 0, 5 и 10 градусов)
Подберём число бит, достаточное для хранения 41 возможного значения:например, 4 бита достаточно для хранения значений (то есть, нам не подойдёт, у нас значений больше)5<span>
бит - это </span>
<span>
значения (не подойдёт)6</span><span>
бит - это </span>
<span>
значения (хватит для хранения наших данных)Ответ: требуется зарезервировать 6 бит.Если вдруг вы уже проходили логарифмы, то количество бит для хранения наших данных можно посчитать так:
</span>
Далее, если бы в результате получилось бы целое число, это бы и было нужное количество бит для хранения.
А для дробного- округляем с избытком (т.е. в большую сторону) до ближайшего целого. Получится шесть бит.
Если на вашем калькуляторе не посчитать логарифм по основанию два, то можно воспользоваться формулой замены основания логарифма, что позволит посчитать через десятичный или натуральный логарифм:
Алфавит 64 символа, это 2^6 (6-кол-во битов на символ)
в сообщении 32 символа - 6×32=192 бита