Представьте, что вы даете кому-то карточку с кодом «5SBDO0».
В некоторых шрифтах букву «S» сложно визуально отличить от цифры пять (как с цифрой ноль и буквой «О»).
Читая код вслух, может быть трудно отличить «B» от «D», требуя сказать «B как у мальчика», «D как у собаки» или использовать вместо этого « фонетический алфавит ».
Какое наибольшее подмножество букв и цифр в большинстве случаев будет выглядеть однозначно визуально и звучать однозначно при чтении вслух?
Фон:
Мы хотим создать короткую строку, которая может закодировать столько значений, сколько возможно, но при этом легко общаться.
Представьте, что у вас есть 6-символьная строка «123456». В базе 10 это может закодировать 10 ^ 6 значений.
В шестнадцатеричном формате «1B23DF» вы можете закодировать 16 ^ 6 значений в том же количестве символов, но это может звучать неоднозначно при чтении вслух. («B» против «D»)
Аналогично для любой строки из N символов вы получаете (размер алфавита) ^ N значений.
Длина строки ограничена примерно шестью символами из-за желания легко помещаться в пределах емкости рабочей памяти человека .
Таким образом, чтобы найти максимальное количество значений, которые мы можем закодировать, нам нужно найти самый большой однозначный набор букв / цифр. Нет причин, по которым мы не можем рассматривать буквы GZ и некоторые обычные знаки пунктуации, но я не хочу вручную выполнять попарно сравнение «G звучит как A?», «G звучит как B?», «Делает G звучит как C "сам. Как мы знаем, это будет O (N ^ 2) лингвистическая работа, чтобы сделать =) ...