我有幾行代碼生成隨機數字,我怎樣才能停止生成重複的數字?在Python中 - 如何生成不重複的隨機數字
import random
num = random.randrange(0,1000)
x = 13
while num != x :
num = random.randrange(0 , 14)
print(num)
我有幾行代碼生成隨機數字,我怎樣才能停止生成重複的數字?在Python中 - 如何生成不重複的隨機數字
import random
num = random.randrange(0,1000)
x = 13
while num != x :
num = random.randrange(0 , 14)
print(num)
存儲生成的數字並檢查每個新號碼的列表。
性能不會太好,因爲要檢查的列表會變長,但至少不會有重複。
另一種方法是從1..n生成一個數字列表,隨機數字,然後迭代列表以獲得您的下一個唯一的隨機數。
>>> import random
>>> l = list(range(4))
>>> random.shuffle(l)
>>> l
[3, 2, 4, 1]
如果只能挑選每個數字一次,這將成爲一樣的隨機排序列表,並在同一時間
import random
desired_number = 13
guesses = range(0,14)
random.shuffle(guesses)
current_guess = None
while current_guess != desired_number:
current_guess = guesses.pop()
print(current_guess)
挑選一個號碼使用一組存儲的數字。 – Cicero
如果您可以使用'numpy':'numbers = numpy.random.choice(range(1000),otherwise_many_numbers_you_want,replace = False)' – roganjosh