Дано:
символов (мощность (размер) алфавита)
символов (длина сообщения)
Найти: (информац.объём сообщения, кол-во информации в нём)
Находим количество информации в одном символе.
По сути, это минимальное количество двоичных разрядов, в котором можно хранить один символ нашего алфавита.
Выбирается оно из таблицы степеней двойки (первое значение, не меньшее, чем наше ), либо через формулу (подбирая минимальное подходящее , либо решая уравнение через нахождение двоичного логарифма и затем округляя всегда с избытком, вверх).
Пример подбора:
если , то (алфавит из 64 символов можно хранить; для нас мало, надо минимум 107)
если , то (алфавит из 128 символов можно хранить; для нас достаточно, это даже больше, чем наши 107 символов в алфавите)
Выбираем минимальную подходящую степень= 7 (т.е. бит)
Пример расчёта:
отсюда, получаем что:
Можно считать одним из трёх : считать сам двоичный логарифм (если логарифм по произвольному основанию есть в вашем калькуляторе- во встроенном в Windows 10, в инженерном виде он есть например), или можно считать отношение десятичных либо натуральных логарифмов (см. дроби в расчёте). Десятичные либо натуральные логарифмы обычно есть в научных калькуляторах.
Получилось дробное значение, значит округляем до целого, но не как обычно, а всегда вверх (то есть, всегда берём целое число, большее чем наш результат). Так округляем потому, что нам нужно получить возможность хранить чуть больше символов, чем есть в нашем алфавите (раз уж ровно 107 не выходит).
Получаем, что: бит
Далее, находим информационный объём сообщения:
бит
ответ: 105 бит
Поделитесь своими знаниями, ответьте на вопрос:
Растровый газетный рисунок состоит из точек четырех цветов. можно с да формула решение
A = [75, 31, 80, 40, 48, 40] # любой список
# Готовые решения для этих задач:
print(sum(A)) # Сумма
# Произведение
A = [35, 2, 82, 10, 44, 42]
import functools
import operator # содержит все возможные операции
print(functools.reduce( # reduce - применить операцию ко всем элементам списка поочерёдно
operator.mul, # операция умножения
A))
# Через цикл
# Сумма:
S = 0
for i in A: S += i # Сложить все элементы A, результатом будет переменная S
print(S)
# Произведение:
M = 1 # Если будет 0, то всё выражение тоже будет 0
for i in A: M *= i
# Или
if 0 in A: M = 0
else:
for i in A: M *= i
print(M)