@@romantsarev1145 Нет, программирование стало менее актуальным с тех пор, и с осени прошлого года перестал его изучать и занялся другой деятельностью, вполне успешно)
Здравствуйте, замечательный разбор, а не подскажете как делятся группы например при вероятностях 0.4 0.2 0.4? В какую группу относим второй элемент, к первому или к последнему? Просто разность вероятности 2ух групп в таком случае одинакова
@romantsarev1145 на сколько мне известно, Хаффману нужно составлять таблицу в порядке убывания числа и делить на +- равные половины, потом за пределами таблицы есть ещё какие-то вычисления, что-то типа "равномерные" и "не равномерные" ... в общем ДА, действительно геморройный метод Хаффмана
В метода Хаффмана мы всегда выбираем минимальные вероятности (сначала среди вероятностей отдельных символов, потом уже и сумм вероятностей). При этом, сортировать предварительно вообще не обязательно. В методе же Ш-A это обязательное условие. Например, этим отличается. В большинстве случаев длина последовательности, сжатой по методу Шеннона - Фано, равна длине сжатой последовательности с использованием кодирования Хаффмана. Однако на некоторых последовательностях могут сформироваться неоптимальные коды Шеннона - Фано, поэтому более эффективным считается сжатие методом Хаффмана (с) Википедия: ru.wikipedia.org/wiki/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%A8%D0%B5%D0%BD%D0%BD%D0%BE%D0%BD%D0%B0_%E2%80%94_%D0%A4%D0%B0%D0%BD%D0%BE
Ни одно кодовое слово не является началом другого кодового слова. То есть, нет ситуации, когда один символ закодирован, например, как 11, а другой - 110, и непонятно при считывании второй единицы (при декодировании) это уже первый символ закончился или второй еще идет. Это называется выполнением принципа префиксности или соблюдением условия Фано.
такой вопрос : я получил кодовые значения для каждого символа но я не могу понять надо считывать длину кодовой комбинации ? Просто мне надо использовать формулу для уменьшения средней длины кодовой комбинации.
Метод Шеннона-Фано дает оптимальный код. Код тем оптимальнее, чем средняя длина кодового слова ближе к минимально возможной. Так что, если Вы хотите узнать насколько код оптимален, то нужно посчитать одно и второе.
Принцип префиксности - ни одно кодовое слово не может быть началом другого кодового слова. Одно должно выполняться всегда и не зависит ни от системы счисления, ни от числа элементов.
@@romantsarev1145 тогда не понимаю, как в двоичном коде можно соблюсти этот принцип невзирая на количество кодируемых символов... (на сколько я понял, префиксность проявляется при записи двоичного кода в ряд без разделения)
@@levkornev1013 Вы поняли верно. Принцип префиксности позволяет ОДНОЗНАЧНО декодировать символы закодированного сообщения, которые идут сплошняком. Но мне не понятно, что Вам не понятно. Возможно повторный просмотр видео снимет возникшие вопросы. Если нет, задайте их более развернуто.
Приятно, что на зоне нас тоже смотрят. Для невнимательных: пример начинается на 0:30 и заканчивается на 3:40. И уже потом описание метода в общем виде.
Спасибо за понятное объяснение!
Вера, рад что Вам понравилось.
Отличное объяснение! Спасибо.
Спасибо
Спасибо большое. Очень понятное объяснение.
Пожалуйста
Очень доходчиво. Спасибо !
Пожалуйста.
Спасибо. Скоро начну изучать программирование, пока не знаю пригодится ли мне эта тема, но посмотреть было интересно.
Ну, как, пригодилось?
@@romantsarev1145 Нет, программирование стало менее актуальным с тех пор, и с осени прошлого года перестал его изучать и занялся другой деятельностью, вполне успешно)
Спасибо, помог
Пожалуйста
Здравствуйте, замечательный разбор, а не подскажете как делятся группы например при вероятностях 0.4 0.2 0.4?
В какую группу относим второй элемент, к первому или к последнему? Просто разность вероятности 2ух групп в таком случае одинакова
Здравствуйте! На Ваше усмотрение.
Спасибо вам большое за объеснение
Пожалуйста
спасибо
а чем тогда метод Хаффмана отличается от Шеннона-Фано, если вычисляются они рубрь в рубль ???
Вот именно, что "рубрь в рубль". Вроде и одинаково, но разница все же есть. Писать долго. На вики это расписано.
@romantsarev1145 на сколько мне известно, Хаффману нужно составлять таблицу в порядке убывания числа и делить на +- равные половины, потом за пределами таблицы есть ещё какие-то вычисления, что-то типа "равномерные" и "не равномерные" ... в общем ДА, действительно геморройный метод Хаффмана
Тему понял, но я не знаю зачем это и где пригодится. Объясните пожалуйста
В моем институте в ближайшее время мы будем писать архиватор на си, с помощью этого метода
@@perfpg8691 ис ?
ничего не понятно, но очень интересно
Твой комментарий порадовал меня
Спасибо за хорошее объяснение, но есть вопрос.
Чем Шеррон-Фано отличается от Хаффмана? Просто записано буквально одинаково.
В метода Хаффмана мы всегда выбираем минимальные вероятности (сначала среди вероятностей отдельных символов, потом уже и сумм вероятностей). При этом, сортировать предварительно вообще не обязательно. В методе же Ш-A это обязательное условие. Например, этим отличается.
В большинстве случаев длина последовательности, сжатой по методу Шеннона - Фано, равна длине сжатой последовательности с использованием кодирования Хаффмана. Однако на некоторых последовательностях могут сформироваться неоптимальные коды Шеннона - Фано, поэтому более эффективным считается сжатие методом Хаффмана (с) Википедия: ru.wikipedia.org/wiki/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%A8%D0%B5%D0%BD%D0%BD%D0%BE%D0%BD%D0%B0_%E2%80%94_%D0%A4%D0%B0%D0%BD%D0%BE
Здравствуйте Роман могли бы мне помочь с решением похожей задачи?
Полагаю, что уже не актуально. Что-то не заметил Вашего комментария в свое время. Лучше было на биржу фриланса обратиться. Там бы точно помогли.
Благодарочку кидаю
в конце не понял, как добиваются однозначности декодирования?
Ни одно кодовое слово не является началом другого кодового слова. То есть, нет ситуации, когда один символ закодирован, например, как 11, а другой - 110, и непонятно при считывании второй единицы (при декодировании) это уже первый символ закончился или второй еще идет. Это называется выполнением принципа префиксности или соблюдением условия Фано.
такой вопрос : я получил кодовые значения для каждого символа но я не могу понять надо считывать длину кодовой комбинации ? Просто мне надо использовать формулу для уменьшения средней длины кодовой комбинации.
Метод Шеннона-Фано дает оптимальный код. Код тем оптимальнее, чем средняя длина кодового слова ближе к минимально возможной. Так что, если Вы хотите узнать насколько код оптимален, то нужно посчитать одно и второе.
@@romantsarev1145 Спасибо большое за ответ !
А доказательство эффективности где?
Нету. Не ставил такой цели
Не совсем понятно как двоичный код может обеспечить префиксность если количество элементов больше 8
Принцип префиксности - ни одно кодовое слово не может быть началом другого кодового слова. Одно должно выполняться всегда и не зависит ни от системы счисления, ни от числа элементов.
@@romantsarev1145 тогда не понимаю, как в двоичном коде можно соблюсти этот принцип невзирая на количество кодируемых символов... (на сколько я понял, префиксность проявляется при записи двоичного кода в ряд без разделения)
@@levkornev1013 Вы поняли верно. Принцип префиксности позволяет ОДНОЗНАЧНО декодировать символы закодированного сообщения, которые идут сплошняком. Но мне не понятно, что Вам не понятно. Возможно повторный просмотр видео снимет возникшие вопросы. Если нет, задайте их более развернуто.
@@romantsarev1145 спасибо за ответ, разобрал пример и понял что трактуется однозначно
Вот почему не можно в универе так объяснить?????????
Отчего же?! Именно так в Сибирском федеральном университете и преподаю.
У кого есть готовый код на джаве. Шеннона фано??? Или Хаффмана?
Есть на с++
@@nanashi106 можешь скинуть
@@nanashi106 А код Хэмминга есть?
@@almazmukushev5993 Нет, только Шеннона-фано и Хаффмана
@@nanashi106 можете ли мне отпр
автору западло пример привести?
Приятно, что на зоне нас тоже смотрят. Для невнимательных: пример начинается на 0:30 и заканчивается на 3:40. И уже потом описание метода в общем виде.