我在Python做了一個簡單的程序來生成與5個號碼中有一個隨機字符串:隨機字符串發生器蟒蛇
import random
numcount = 5
fstring = ""
for num in range(19): #strings are 19 characters long
if random.randint(0, 1) == 1:
x = random.randint(1, 26)
x += 96
fstring += (chr(x).upper())
elif not numcount == 0:
x = random.randint(0, 9)
fstring += str(x)
numcount -= 1
print(fstring)
不太難吧?除了一件令人難以置信的奇怪的事情:它返回的字符串是一個隨機的長度。我已經運行代碼幾次,這裏有一些我的結果:
>>> ================================ RESTART ================================
>>>
VQZ99HA5DER0CES4
>>> ================================ RESTART ================================
>>>
05PS0T86LOZS
>>> ================================ RESTART ================================
>>>
E2QX8296XK
>>> ================================ RESTART ================================
>>>
M5X9K457QDNBPX
我想不通這是怎麼回事......任何人都可以點我在正確的方向?
沒有做任何深層次的分析,可以看到,有時兩者IFS將失敗(導致更短的fstring),有時是隨機的,他們不會。 – Malvolio
有時,*很少*,他們不會。平均來說,你會在數字分支中獲得9.5次迭代,只有5次會做任何事情。相當不可能只有5次或更少的迭代。 –