Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Двоичное кодирование




В информационных системах для двоичной записи целых чисел обычно используют фиксированное число двоичных разрядов (позиций для двоичных цифр) n. Если число имеет в своей записи m≤n двоичных цифр, в первые n−m позиций вписываются нули, а в оставшиеся m позиций цифры числа. Таким образом, используя n двоичных разрядов, можно представить все числа от 0 до 2n−1.

Всякое сообщение, записанное с использованием символов некоторого алфавита, можно представить в виде некоторой последовательности из нулей и единиц. В самом деле, пусть A={a,b,…} – конечный алфавит. Выберем число n так, чтобы 2n было не меньше, чем число его символов. Перенумеруем символы алфавита (начиная нумерацию с нуля) и припишем каждому из них его двоичный код – двоичную запись номера символа с использованием n двоичных разрядов (битов). Текст ab…, представляется последовательностью блоков

αn−1αn−2…α1α0βn−1βn−2…β1β0…,

где αn−1αn−2…α1α0 – двоичная запись номера символа a, βn−1βn−2…β1β0 – двоичная запись номера символа b, и т.д.

В информатике распространены системы кодирования символов алфавита с использованием 8-разрядных блоков – байтов. Это позволяет работать с алфавитами, содержащими до 256 символов. Обычно используемые алфавиты содержат латинские буквы, буквы национального алфавита, цифры, знаки препинания и некоторые специальные знаки.

 

6.2. Векторное пространство {0,1}n

На множестве n-мерных двоичных векторов определим операцию ⊕ – сложение по модулю 2. Сумма двоичных векторов α=(α12,…,αn) и β=(β12,…,βn) определяется формулой

α⊕β = (α1⊕β1, α1⊕β1,…, αn⊕βn).

Вектор α⊕β содержит единицы на тех местах, где координаты векторов α и β различаются, и нули – на тех, где совпадают.

Примеры. (0,1,0,1)⊕(0,0,1,1) = (0,1,1,0);

(0,1,0,1)⊕(1,1,1,1) = (1,0,1,0);

(0,1,0,1)⊕(0,1,0,1) = (0,0,0,0).􀀀

Операция ⊕ обладает важными свойствами обычного сложения: она коммутативна и ассоциативна, нулевой вектор является нейтральным элементом. Кроме того, α⊕α является нулевым вектором для любого вектора α.

Система n-мерных двоичных векторов линейно зависима, если сумма (по модулю 2) нескольких векторов из этой системы равна 0 (мы используем один и тот же символ «0» для обозначения числа «ноль» и нулевого вектора, когда из контекста ясно, о чем идет речь). На двоичные векторы распространяются стандартные свойства линейной зависимости:

в пространстве {0,1}n любая система, содержащая более n векторов, линейно зависима;

любые n линейно независимых векторов образуют базис пространства {0,1}n; всякий вектор из {0,1}n может быть единственным образом представлен в виде суммы нескольких базисных векторов.

Двоичные векторы (0,0,…,0,1), (0,0,…,1,0),…, (1,0,…,0,0) образуют базис пространства {0,1}n, называемый каноническим.

Число единичных координат двоичного вектора α=(α12,…,αn) обозначают через w(α) и называют весом вектора α. Очевидно,

w(α) = α12+…+αn.

Формулой

d(α,β) = w(α⊕β)

определяется расстояние d(α,β) между двоичными векторами α и β, называемое расстоянием Хемминга. Расстояние Хемминга обладает следующими свойствами:

1) d(α,α)=0 и d(α,β)>0 при α≠β;

2) d(α,β)=d(β,α);

3) d(α,β)+d(β,γ)≥d(α,γ) (неравенство треугольника).

 

6.3. Отображения {0,1}n в {0,1}m

Произвольное отображение из {0,1}n в {0,1}m, (x1,x2,…,xn) → (y1,y2,…,ym),

задается набором булевых функций

y1=f1(x1,x2,…,xn), y2=f2(x1,x2,…,xn), …, ym=fm(x1,x2,…,xn).

Чтобы задать такое отображение, требуется указать m двоичных векторов размерности 2n. Таким образом, для задания произвольного отображения необходимо m×2n бит информации. Например, отображение из {0,1}2 в {0,1}3 задается вектором размерности 12 (составленным из трех векторов размерности 4). Общее число отображений из {0,1}2 в {0,1}3 равно 212=4096.

Напомним, что линейной называется функция вида

f(x1,x2,…,xn) = c1x1 ⊕ c2x2 ⊕ … ⊕ cnxn,

где c=(c1,c2,…,cn) – произвольный двоичный вектор.

Булева функция f:{0,1}n → {0,1} является линейной, если

f(α⊕β)=f(α)⊕f(β)

для любых α и β из {0,1}n.

В самом деле, так как

(x1,x2,…,xn) = x1⋅(1,0,…,0) ⊕ x2⋅(0,1,…,0)⊕…⊕ xn⋅(0,0,…,1),

то

f(x1,x2,…,xn) = x1⋅f(1,0,…,0) ⊕ x2⋅f(0,1,…,0)⊕…⊕ xn⋅f(0,0,…,1).

Вектор c=(c1,c2,…,cn) имеет следующий вид:

c1 = f(1,0,…,0), c2= f(0,1,…,0), …, cn= f(0,0,…,1).

Общее число линейных функций от n переменных равно числу n-мерных двоичных векторов, то есть равно 2n. Как видно из предыдущего, линейная функция f является суммой нескольких своих аргументов. Например, x1 входит слагаемым в эту сумму, если f(1,0,…,0)=1, и не входит, если f(1,0,…,0)=0.

Пример. Перечислим все линейные функции y=f(x1,x2,x3) от трех переменных:

y=0 (тождественный 0); y=x1; y=x2; y=x3;

y=x1⊕x2; y=x1⊕x3; y=x2⊕x3; y=x1⊕x2⊕x3.􀀀

Отображение f:{0,1}n → {0,1}m называется линейным, если f(α⊕β)=f(α)⊕f(β) для любых α и β из {0,1}n. Отображение

f:{0,1}n → {0,1}m , (x1,x2,…,xn) → (y1,y2,…,ym),

линейно тогда и только тогда, когда линейны все его компоненты

y1=f1(x1,x2,…,xn), y2=f2(x1,x2,…,xn),…, ym=fm(x1,x2,…,xn).

Отсюда следует, что линейное отображение из {0,1}n в {0,1}m однозначно определяется набором, содержащим m двоичных векторов размерности n, то есть некоторой матрицей из нулей и единиц размера m×n. Для задания линейного отображения необходимо m×n бит информации. Общее число линейных функций из {0,1}n в {0,1}m равно 2mn.

Пример. Рассмотрим линейное отображение f из {0,1}2 в {0,1}3. Задать его можно, указав матрицу из нулей и единиц (cij), i=1,2,3, j=1,2:

y1=c11x1⊕c12x2, y2=c21x1⊕c22x2, y3=c31x1⊕c32x2.

Пусть, например,

y1=x1, y2=x2, y3=x1⊕x2.

Тогда

c11=1, c12=0, c21=0, c22=1, c31=1, c32=1.􀀀

Следующая таблица дает некоторое представление о росте объема информации, необходимой для задания произвольных и линейных отображений из {0,1}n в {0,1}m.

Задание отображения из {0,1}n в {0,1}m (бит)

n m произвольное линейное

1 1 2 1

1 2 4 2

2 2 8 4

2 3 12 6

3 4 32 12

8 9 2304 72

15 20 655360 300






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных