假设您给某人一张卡片,上面印有代码“ 5SBDO0”。
在某些字体中,字母“ S”很难从视觉上与数字5区分开(例如,数字零和字母“ O”)。
大声朗读代码,可能很难区分“ B”和“ D”,必须说“ B代表男孩”,“ D代表狗”或使用“ 语音字母 ”。
在大多数情况下,大声朗读时字母和数字的最大子集是什么?
背景:
我们希望生成一个短字符串,该字符串可以编码尽可能多的值,同时仍易于通信。
假设您有一个6个字符的字符串“ 123456”。在基数10中,这可以编码10 ^ 6个值。
在十六进制“ 1B23DF”中,您可以用相同数量的字符对16 ^ 6个值进行编码,但是当大声读取时,这听起来可能会模棱两可。(“ B”对“ D”)
同样,对于任何N个字符的字符串,您将获得(字母的大小)^ N个值。
由于要很容易地容纳在人类工作记忆容量的范围内,因此该字符串的长度限制为大约六个字符。
因此,要找到我们可以编码的最大值数量,我们需要找到最大的字母/数字明确集合。我们没有理由不考虑字母GZ和一些常见的标点符号,但是我不想手动成对比较“ G听起来像A吗?”,“ G听起来像B吗?”,“是否我自己听起来像C”。我们知道这将是O(n ^ 2)个语言工作=)...