作为开发人员,我们经常处理各种标识符作为日常工作的一部分。大多数情况下,这涉及到错误或支持票。我们的软件在检测到错误时,会创建一个包,其名称格式由时间戳和版本号组成,这是一种廉价的创建合理唯一标识符以避免混淆包的方法。例如:“Bug Report 20101214 174856 6.4b2”。
我的大脑并不擅长记忆数字。我希望有一种简单的方式可以生成容易记忆的字母数字标识符。
使用Python编写以下算法只需要约5分钟,就可以产生半可用的结果:
结果如下所示:
这已经很不错了,但我觉得仍然很容易忘记它们的拼写,所以如果你走到同事的桌子旁想查找其中之一,仍然存在困难的可能性。
我知道有些算法可以对文本进行三元分析(比如你给它一本德语书),并且可以生成看起来和感觉像德语单词的字符串,因此通常更容易处理。不过这需要大量数据,并且稍微不太适合嵌入到只为此目的而编写的应用程序中。
您知道有没有任何已发布的算法可以解决这个问题吗?
谢谢!
卡尔
我的大脑并不擅长记忆数字。我希望有一种简单的方式可以生成容易记忆的字母数字标识符。
使用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
这已经很不错了,但我觉得仍然很容易忘记它们的拼写,所以如果你走到同事的桌子旁想查找其中之一,仍然存在困难的可能性。
我知道有些算法可以对文本进行三元分析(比如你给它一本德语书),并且可以生成看起来和感觉像德语单词的字符串,因此通常更容易处理。不过这需要大量数据,并且稍微不太适合嵌入到只为此目的而编写的应用程序中。
您知道有没有任何已发布的算法可以解决这个问题吗?
谢谢!
卡尔