3. Алфавит и числа
Еще одна задача состоит в том, чтобы, кроме букв алфавита, кодировать еще и числа. Решение зависит от назначения кодирования. Можно предположить, что при машинописи буквы встречаются чаще, чем цифры. Для счетной машины справедливо обратное. Вот некоторые примеры.
А. Воспользуемся кодом IBM (шестизначный двоичный код), так что буквы и десять десятичных цифр имеют
одинаковую длину. Отношение вероятностей в среднем равно:
что является подходящим соотношением для пишущей машинки. Однако код неэффективен, так как применяет только 37 из 64 возможных комбинаций; остальные 27 комбинаций остаются неиспользованными.
B. Возьмем семь двоичных цифр, дающих 128 комбинаций, и закодируем все числа от 0 до 99 плюс 27 букв. Одна комбинация останется неиспользованной. Это очень эффективный код, дающий в среднем 3,5 дв. ед. на число (оптимальное значение равно 3,32). Мы представляем себе каждое из этих 100 чисел в виде двух десятичных цифр (число 7, например, представляется в виде 07), так что в общем в числах встречается 200 десятичных цифр. Отсюда
Это соотношение является подходящим для счетной машины.
C. Возьмем 10 двоичных цифр, дающих 1024 комбинации, и закодируем все числа от 0 до 999 плюс 24 буквы. Две буквы останутся незакодированными. Мы можем использовать одно и то же кодовое обозначение для буквы О и для нуля, а также для единицы и L. Здесь мы получаем 3,33 дв. ед. на число, т. е. практически лучшее возможное значение. Имеется 1000 трехзначных десятичных чисел, и следовательно, в общем 3000 десятичных цифр, так что
Этот код был бы подходящим для вычислительной машины, где буквы встречаются лишь изредка.
В кодах В и С дополнения до 99 или 999 играют роль обычного дополнения 9 и легко могут быть получены применением кодов с излишком 14 или с излишком 12 соответственно . Существенно, что прежде, чем выбирать код, нужно знать относительную вероятность цифр и букв.