随机数生成器返回以前未生成的数字



我想要一个不生成以前生成的任何数字的随机生成器。调用此生成器不会返回列表。它每次返回1个数字,这个数字将是以前没有生成的全新数字。

到目前为止,我实现这一点的想法是首先生成一个长的不重复随机列表,然后从列表中逐个检索。

使用Python,但我想这更多是一个一般的逻辑问题。

编辑:抱歉大家搞糊涂了。澄清我试图实现的问题:我正在开发一个应用程序,用户可以在该应用程序中注册并收到酒店房间号码。该应用程序已设置了一些酒店。每个新用户都将收到酒店的唯一酒店号码。范围可能在0001到9999之间。我的目标是让一个算法为该用户吐出一个从0001到9999的随机数字,这个数字必须是唯一的,这样酒店的每个房间号码只能由一个用户占用。我正在使用Django。

如果您已经知道需要从中选择的数字,

import random
x = [4,3,6,7,2,...]  # list of desired numbers
result = x.pop(random.randint(0, len(x) - 1))

您可以执行以下操作:

import numpy as np
random_nums = []
for _ in range(10):
while True:
x = np.random.randint(0,10)
if x not in random_nums:
random_nums.append(x)
break

最新更新