与所有开发人员一样,我们在日常工作中不断处理某种标识符。大多数时候,它是关于错误或支持票的。我们的软件在检测到错误后会创建一个包,该包的名称由时间戳和版本号格式化,这是一种创建合理唯一标识符以避免混淆包的廉价方法。示例:“错误报告 20101214 174856 6.4b2 ”。
我的大脑不太擅长记住数字。我想要的是一种生成易于记忆的字母数字标识符的简单方法。
在 python 中创建一个类似以下的算法大约需要 5 分钟,它会产生一半可用的结果:
import random
vowels = 'aeiuy' # 0 is confusing
consonants = 'bcdfghjklmnpqrstvwxz'
numbers = '0123456789'
random.seed()
for i in range(30):
chars = list()
chars.append(random.choice(consonants))
chars.append(random.choice(vowels))
chars.append(random.choice(consonants + numbers))
chars.append(random.choice(vowels))
chars.append(random.choice(vowels))
chars.append(random.choice(consonants))
print ''.join(chars)
结果如下所示:
re1ean
meseux
le1ayl
kuteef
neluaq
tyliyd
ki5ias
这已经很好了,但我觉得仍然很容易忘记它们的确切拼写方式,所以如果你走到同事的办公桌前想查一下其中的一个,仍然可能会遇到困难。
我知道对文本执行三元组分析的算法(比如你用德语给他们一整本书)并且可以生成看起来和感觉像德语单词的字符串,因此通常更容易处理。但是,这需要大量数据,并且稍微不适合为此目的嵌入应用程序中。
您知道解决此问题的任何已发布算法吗?
谢谢!
卡尔