Другие языки программирования и технологии
Господа! Напишите (если такое конечно возможность) пример двоичного кода, который невозможно сжать (более 10 символов)
Господа! Напишите (если такое конечно возможность) пример двоичного кода, который невозможно сжать (более 10 символов) спасибо
Предположим, что у нас есть строка длиной 10 символов (не больше и не меньше). Возможных вариантов таких строк 2^10. Теперь возьмём все возможные сжатия, у которых длина от 9 и меньше. Количество таких вариантов 2^10 - 2. Вывод: невозможно создать биективную функцию между этими двумя множествами (чтобы каждый элемент одного множества преобразовывался уникальным образом в элемент другого множества, и наоборот в том же виде), так как целевое множество меньшего размера. По крайней мере один элемент сжать не получится.
Способ сжатия? Требования к описанию (заголовок) ? .
Привожу пример
10 символов двоичного кода
0000000000 - "десять нулей", казалось бы очень легко сжимаются до кодограммы 10 штук символа "0", но нужно учитывать, что нам постребуется записать заголовок - для описания цифры 10 - 5 бит + для описания самого символа 1 бит + для пометки, что далее идет RLE код, а не простая последовательность бит (как минимум один бит) итого 7 бит, при этом я взял простейший для кодирования тестовый вариант
в этом-же варианте кодирования последовательность
0000011111 будет закодирована 14 битами, что больше чем начальная последовательность
итд....
Привожу пример
10 символов двоичного кода
0000000000 - "десять нулей", казалось бы очень легко сжимаются до кодограммы 10 штук символа "0", но нужно учитывать, что нам постребуется записать заголовок - для описания цифры 10 - 5 бит + для описания самого символа 1 бит + для пометки, что далее идет RLE код, а не простая последовательность бит (как минимум один бит) итого 7 бит, при этом я взял простейший для кодирования тестовый вариант
в этом-же варианте кодирования последовательность
0000011111 будет закодирована 14 битами, что больше чем начальная последовательность
итд....
Если в двоичной системе всего 2 варианта - 0 или 1 и что одно исключает другое, то значит невозможно сжать 0 без 1 или 1 без 0.
Соотв. вывод напрашивается сам. В т. ч. и с комбинациями.
P.S: Возможно я не так понял вопрос =)
Соотв. вывод напрашивается сам. В т. ч. и с комбинациями.
P.S: Возможно я не так понял вопрос =)
Похожие вопросы
- Почему не сжать двоичный код?
- Перевод символа в двоичный код.
- Двоичный код быстрее языков программирования по типу c++? (Я знаю что эти языки тоже написаны на двоичном коде)
- Как получить двоичный код файла?
- Сейчас ведь нет надобности в двоичном коде ?
- Разум в двоичный код.
- Объясните как происходит запись информации в двоичном коде. Специально распишу как я это понимаю, чтобы объяснитель
- Добрый день. Компьютер все языки программирование понимает как двоичный код ( если я не ошибаюсь).
- нужен генератор двоичного кода (Pascal)
- Как процессор различает что есть символ, что число, а что команда? Ведь все в двоичном коде
возможных сжатий длиной от 9 и меньше гораздо больше, чем 2^10: ведь 0001, 001, 01 и 1 - это четыре разные строки.