與所有開發人員一樣,我們經常處理某種標識符作爲我們日常工作的一部分。大多數情況下,這是關於錯誤或支持票。我們的軟件在檢測到一個bug後,會創建一個名稱從時間戳和版本號格式化的包,這是創建合理唯一標識符以避免混合包的廉價方法。例如:「Bug Report 20101214 174856 6.4b2」。生成易於記憶的隨機標識符
我的大腦只是不擅於記憶數字。我想要的是一個簡單的方法生成易於記憶的字母數字標識符。
這大約需要5分鐘掀起的算法像蟒蛇以下,產生中間有用的結果:
import random
vowels = 'aeiuy' # 0 is confusing
consonants = 'bcdfghjklmnpqrstvwxz'
numbers = ''
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
這已經是相當不錯,但我覺得忘記拼寫的準確性還是很容易的,所以如果你走到一個同事的辦公桌前,想看看其中的一個,仍然有潛在的困難。
我知道的,關於文本進行三元分析算法(比如你給他們一整本書在德國),並能生成外觀和感覺像德語單詞,並因而更容易通常處理字符串。然而,這需要大量的數據,並且僅僅爲了這個目的,它不太適合嵌入到應用程序中。
你知道那解決這個問題的任何出版的算法?
謝謝!
卡爾
你應該在開始思考如何生成隨機單詞之前閱讀此內容:http://thedailywtf.com/Articles/The-Automated-Curse-Generator.aspx – Prutswonder 2010-04-16 12:15:14
哈,好!我會牢記它! – 2010-04-16 12:25:21