def dealHand(n):
"""
Returns a random hand containing n lowercase letters.
At least n/3 the letters in the hand should be VOWELS.
Hands are represented as dictionaries. The keys are
letters and the values are the number of times the
particular letter is repeated in that hand.
n: int >= 0
returns: dictionary (string -> int)
"""
hand={}
numVowels = n / 3
for i in range(numVowels):
x = VOWELS[random.randrange(0, len(VOWELS))]
hand[x] = hand.get(x, 0) + 1
for i in range(numVowels, n):
x = CONSONANTS[random.randrange(0,len(CONSONANTS))]
hand[x] = hand.get(x, 0) + 1
return hand
この関数は私が作成しなければならなかったワードゲームの一部であり、開始を支援するためにいくつかのヘルパー関数に含まれていました。私の問題は、返される文字があまりランダムではなく、次のような繰り返し文字がたくさんある a a c c b e e g j j m m m o o r t v y x
ことです。よりランダムな文字のセットを取得できるかどうか疑問に思っていますか?