Закодировать битовую строку

компьютеры JavaScript perl

У меня задача: закодировать последовательность нулей и единиц длиной 300-400 штук - наиболее компактным, читаемым и произносимым способом.

Пока придумал 22 буквы и 10 цифр (5 бит на символ), получается типа S21M66BCDKK4O29P6CU2M4, но это всё равно длинно.

Маленькие буквы использовать нежелательно (трудно передавать на слух).
Увеличение разрядности до 6 бит требует ещё 32 новых символа, так что это тупиковый путь.

Языки: Перл _И_ JavaScript, желательно без крутых библиотек.

Какие идеи?

Примечание:
base64 какбэ не эффективно.
Да и большие и маленькие буквы сложнее передавать на слух,
а русские и латинские сложнее различать на вид.

# echo '101010101' | base64 -
MTAxMDEwMTAxCg==

Примечание:
> n-ричное счисление

Для этого, вроде надо сначала получить число порядка 2^300,
а потом его делить, делить, делить.

Это уже ядрёная целочисленная арифметика (за рамками 32 бит).
Ответы:
а base64 уже не модно?
> Увеличение разрядности до 6 бит требует ещё 32 новых символа, так что это тупиковый путь.
Здесь не требуется 2^n-ричное счисление. Используй n-ричное счисление. Как в школе учили. Упорядочи символы и вперед.
Кодировать словами русского языка. С учётом словоформ. По-моему, это около 1 млн словоформ то есть примерно 20 бит на слово. 400 бит = 20 слов. Можно строить марковской цепью бессмысленные, но синтаксически верные предложения (аля vesna.yandex.ru), битность на слово упадёт примерно до 17 бит на слово, но будет лучше читаться. 400 бит = одно предложение из 24 слов.


14 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.