mobil version full version Full version RU ENG

Популярная информатика




В прошлой заметке про информатику на меня действительно нашло затмение. Однако, под чутким руководством коллеги pythonchik я осознал свои заблуждения и встал на путь истинный.

Тем не менее, изложение материала по приведенной в той заметке ссылке я считаю очень запутанным.

Вот как этот материал излагал бы я.

Тема урока:  Кодирование информации и вычисление информационного объема сообщения.

Теория

1. Все сообщения состоят из символов алфавита. Например, этот текст состоит из символов русского алфавита.

2. Символ - это минимальная неделимая частица алфавита. Например, символами русского алфавита являются буквы "а", "б", "в" и так далее.

3. Мощность алфавита - это количество символов, из которых состоит алфавит. Например, мощность русского алфавита - 33 символа.

4. Теоретически, любой алфавит может использоваться сам по себе, без какого либо кодирования. В этом случае каждый символ алфавита означает сам себя и имеет самостоятельный смысл. Например, в бумажной книге каждая буква означает сама себя, никакого кодирования нет.

5. Но на практике часто бывает нужно закодировать один алфавит с помощью другого алфавита. Например, в компьютере, на самом деле, нет никаких букв, только цифры. Поэтому, чтобы компьютер понимал буквы "человеческого алфавита", их нужно кодировать с помощью специального "машинного алфавита".

6. Таким образом, при кодировании используется два алфавита - кодируемый и кодирующий.

7. Один символ кодируемого алфавита кодируется несколькими символами кодирующего алфавита.

8. Мощность кодируемого алфавита определяется по формуле  N=Mi, где M - мощность кодирующего алфавита, а i - количество символов кодирующего алфавита, которыми закодирован кодируемый алфавит.

9. Особая оговорка! Если нет отдельных указаний, то следует считать, что мощность кодирующего алфавита - 2 символа. Все современные компьютеры работают с двумя символами, единицей и нулем, поэтому все расчеты делаются исходя из этого факта.

Практика

Как уже говорилось, компьютер ничего не знает про буквы. Чтобы на компьютере можно было писать буквы, их требуется кодировать. В качестве кодирующего алфавита используются два символа машинного алфавита - 0 и 1. Таким образом, мощность машинного алфавита - два символа.

Чаще всего, хотя и не обязательно, для кодирования одного символа человеческого алфавита в компьютере используется восемь символов машинного алфавита. Вот как это выглядит внутри компьютера:

00100110

Эти восемь нулей и единичек кодируют один символ - &.

А сколько всего символов может быть закодировано с помощью восьми нулей и единичек? Ответ можно посчитать по формуле N=Mi. Мощность кодирующего алфавита - 2, количество кодирующих символов - 8.

N=28 = 256

Т.е. с помощью восьми нулей и единичек можно закодировать 256 символов. Иначе говоря, с помощью двух символов машинного алфавита (кодирующий алфавит) можно закодировать 256 символов человеческого алфавита (кодируемый алфавит). В эти 256 символов отлично помещаются русские буквы, латинские буквы, знаки препинания и всякие разные знаки, вроде упоминавшегося выше знака &.

Теперь решим простую задачу

Объем сообщения, содержащего 4096 символов, равен 1/512 части Мбайта. Какова мощность алфавита, с помощью которого записано это сообщение?

Решение:

Мощность алфавита N=Mi. M известно, оно всегда равно 2. Значит, нам нужно узнать i - количество символов кодирующего алфавита, которыми закодирован один символ кодированного алфавита.

Для этого 1/512 Мбайта символов кодирующего алфавита поделим на 4096 символов кодированного алфавита.

Объем 1/512 Мбайта это 1024/512 = 2 Кбайта = 2*1024 = 2048 байт = 2048*8 = 16384 бита.

Значит i = 16384/4096 = 4 бита на символ.

Отсюда мощность кодированного алфавита = 24 = 16 символов.

А теперь решим сложную задачу

Милиционер Дядя Степа хочет передать сообщение своему коллеге на соседнем перекрестке с помощью светофора. Сколько светофоров понадобится Дяде Степе, если он хочет использовать все буквы русского языка?

Решение:

В данном случае кодируемым алфавитом является русский язык. В русском языке 33 буквы, значит мощность кодируемого алфавита - 33 символа.

Кодирующим алфавитом будут светофорные сигналы. Светофор имеет 5 сигналов: красный, желтый, красно-желтый, мигающий желтый, зеленый. Стало быть, мощность кодирующего алфавита - 5 символов.

Вспоминаем, как вычисляется мощность кодируемого алфавита: N=Mi. В отличие от простой задачи, тут у нас M не будет равно 2. В случае со светофорами M будет равно 5. Значит, N=5i.

Мы знаем, что мощность русского языка равна 33. Значит , N=33. Тогда формула будет 33=5i. Вычислим i.

Если взять i=2, то 52 будет равно 25. Т.е. двумя светофорами можно закодировать 25 символов. 25 меньше, чем 33, а это значит, что двух светофоров будет недостаточно для кодирования всех букв русского языка.

Если взять i=3, то 53 будет равно 125. Т.е. двумя светофорами можно закодировать 125 символов. 125 больше, чем 33, а это значит, что трех светофоров будет достаточно для кодирования всех букв русского языка.

Остается даже много лишних символов, так что с помощью трех светофоров Дядя Степа сможет не только буквы закодировать, но еще и кучу смайликов в свое сообщение вставить:)

tags: кодирование, информатика

Leave a comment

Read comments (10)