Come tutti gli sviluppatori, ci occupiamo costantemente di alcuni tipi di identificatori come parte del nostro lavoro quotidiano. La maggior parte delle volte si tratta di bug o ticket di supporto. Il nostro software, rilevando un bug, crea un pacchetto con un nome formattato da un timestamp e un numero di versione, che è un modo economico di creare identificatori ragionevolmente unici per evitare di mescolare i pacchetti. Esempio: "Bug Report 20101214 174856 6.4b2".Generazione di identificatori casuali facili da ricordare
Il mio cervello non è così bravo a ricordare i numeri. Quello che mi piacerebbe avere è un modo semplice di che genera identificatori alfanumerici facili da ricordare.
Ci vogliono circa 5 minuti per improvvisare un algoritmo simile al seguente in Python, che produce risultati a metà strada utilizzabili:
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)
I risultati simile a questa:
re1ean
meseux
le1ayl
kuteef
neluaq
tyliyd
ki5ias
Questo è già abbastanza buono, ma sento che è ancora facile dimenticare come sono scritti esattamente, in modo che se passi alla scrivania di un collega e vuoi vedere uno di quelli in alto, c'è ancora un potenziale di difficoltà.
Conosco algoritmi che eseguono l'analisi del trigramma sul testo (ad esempio gli fornisci un intero libro in tedesco) e che possono generare stringhe che sembrano e sembrano parole tedesche e sono quindi più facili da gestire in generale. Ciò richiede molti dati, tuttavia, e lo rende leggermente meno adatto per l'incorporamento in un'applicazione solo per questo scopo.
Sei a conoscenza di algoritmi pubblicati che risolvono questo problema?
Grazie!
Carl
Si dovrebbe leggere questo prima di iniziare a pensare a generare parole casuali: http://thedailywtf.com/Articles/The-Automated-Curse-Generator.aspx – Prutswonder
Ha, buono! Lo terrò a mente! –