Как сжать 10-значный номер в 2 символа - PullRequest
0 голосов
/ 28 ноября 2018

У меня есть ввод, состоящий из пяти букв английского алфавита в верхнем регистре, например, ABCDE, и мне нужно преобразовать его в двухсимвольный уникальный вывод ASCII.например, ABCDE и ZZZZZ должны давать два разных выхода

Я преобразовал из ABCDE в гекс, что дает мне 4142434445, но из этого я могу получить двухзначное выходное значение, которое мне требуется?

Пример:
INPUT1 = ABCDE
Преобразован в шестнадцатеричный код = 4142434445

INPUT2 = 4142434445
OUTPUT =??Любые 2 символа ASCII

Другие примеры INPUT1 =

BIRAL
BRMAL
KLAAX

1 Ответ

0 голосов
/ 28 ноября 2018

Итак, вы начинаете с 5-значного числа Base-26, и вы хотите сжать его в какую-то 2-значную схему с основанием n?

Все возможные 1-5-значные числа Base-26дает вам пространство чисел 26 ^ 5 = 11 881 376.

Итак, вы хотите минимальное n, где n ^ 2> = 11 881 376.

, что дает вам 3446.

ТеперьВам нужно пойти и найти подходящий блок глифов где-нибудь в UTF, где вы можете надежно заблокировать 3446 отдельных символов, чтобы действовать как ваша новая база / алфавит.И создайте отображение из вашего 5-символьного номера ABCDE типа base-26 на ваше 2-символьное число wierd-glyph base-3446.Удачи с этим.

В ASCII недостаточно разнообразия, чтобы сделать это, поскольку в нем всего 128 печатных символов.Ограничение себя 2-мя символами ASCII означает, что вы можете использовать только пробел 16384.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...