![]() |
|
![]() ![]() ![]() |
|
Kesh |
|
||||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Эксперт Сообщений: 2488 Регистрация: 31.7.2002 Где: Германия, Saarbrü cken Репутация: нет Всего: 54 |
Я тут вот откопал кое-что из старых лекций.... Элементы теории кодирования. Пусть задан некоторый алфавит A={a1,a2,...,ak}, если известна вероятность появления каждого символа этого алфавита в тексте, то будем говорить, что задан ансамбль сообщений... {[a1,p1],[a2,p2],...,[ak,pk]}, где pi - вероятность появления события ai, т.е. все pi>=0, p1+p2+...+pk=1. Кодовый алфавит двоичный {0,1}. Кодированием называется операция, с помощью которой каждому сообщению ансамбля ставится в соответствие кодовое слово. Кодирование должно удовлетворять следующим двум условиям: 1. (Однозначность(обязат)) Необходимо сохранить однозначность декодирования. 2. (Экономичность(желат)) желательно, чтобы среднее количество кодовых символов, затрачиваемых на кодирование сообщения ансамбля было минимальным. Два вида кодирования:
Давайте посчитаем теперь среднюю длину символа в сообщении при "понтовом" кодировании: 2*(1/4)*2+3*(1/8)*2+4*(1/16)*4=2,75<3, немного поясню: каждое слагаемое состоит из 3-х сомножителей, первый из которых - длина символа, второй - вероятность появления символа с данной длинной кода, третий - количество таких символов в кодовом алфавите. При этом выполняется условие однозначности декодирования (префиксное условие). Это условие состоит в следующем: никакое более короткое кодовое слово не может быть началом (префиксом) более длинного кодового слова. Кодовое дерево.
Все вершины кодового дерева делятся на 2 класса: промежуточные и концевые. Кодовые наборы любого кода соответствуют концевым вершинам кодового дерева, а не промежуточным. Метод оптимального кодирования. Метод Хаффмана. Допустим, что нам надо закодировать 7 символов в двоичном кодовом алфавите... Символ | Вероятность a1 0,23 a2 0,19 a3 0,16 a4 0,14 a5 0,12 a6 0,9 a7 0,7 покажем алгоритм кодирования
Вот в общем-то и все... Не рассказал еще о кодах, обнаруживающих и исправляющих ошибки, да думаю это никому не интересно... :0) P.S. Если у кого возникнут какие вопросы - пишите... -------------------- ![]() |
||||||||
|
|||||||||
Gets |
|
|||
Unregistered |
Ну а если быть точным, то систем исчисления бывает очень много, т.е. много можно придумать, как считать числа и какие брать основания. Самые известные из них хто десятичная (0...9), двоичная (0,1), восьмиричная (0...7) и шестнадцатиричная (0...A,B,C,D,E,F).
|
|||
|
||||
Dr.Death |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 950 Регистрация: 15.7.2003 Где: Волгоград Репутация: нет Всего: 1 |
Dexter - Купи саму дешевую книжку по информатике для школ, там должно это быть.
-------------------- Жизнь коротка, чтобы быть в ней слабым.© Арнольд Шварцнеггер |
|||
|
||||
__vi |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 301 Регистрация: 21.1.2004 Репутация: нет Всего: -1 |
Восемь бит использовали потому-что стандарт ASCII предусматривал 128 символов, и если ты не знаеш то 8 бит это 1 байт. Так вот 127 в двоичной системе что-то втоде 01111111. (Битовую адресацию современные компьютеры не подерживают (т.е. минимум можно указать на байт)) Как видиш один бит мы не используем. Поетому остальные 128 символов используют для локального алфавита или для специальных символов.
ЗЫ Ели сдержал себя от мата |
|||
|
||||
podval |
|
|||
![]() Где я? Кто я? ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3094 Регистрация: 25.3.2002 Где: СПб Репутация: 18 Всего: 62 |
Модератор: Не нужно фанатизма! Вопрос задан очень давно (см. дату создания темы) и не Dexter эту тему вытащил из небытия. Подобные выпады неуместны. |
|||
|
||||
__vi |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 301 Регистрация: 21.1.2004 Репутация: нет Всего: -1 |
Ok, ok, sorry.
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Алгоритмы" | |
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Алгоритмы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |