我想从给定范围内的循环中生成x和y的随机数字集。
我尝试了以下代码,但如果'n'很小或循环了很多次,有时会返回重复的值。
x = random.randint(0,n-1)
y = random.randint(0,n-1)
答案 0 :(得分:0)
您可以将生成的x和y存储在列表中。这样,您可以检查x和y是否已经存在,如果不存在,请添加新的。
l = []
n = 1
while len(l) < 101:
if not l:
x = random.randint(0,n-1)
y = random.randint(0,n-1)
l.append((x, y))
else:
x = random.randint(0,n-1)
y = random.randint(0,n-1)
if (x, y) not in l:
l.append((x, y))
n += 1
这将在每次循环时为您提供一个唯一的元组(x, y)
。
答案 1 :(得分:0)
以下方法应该起作用:
from random import choice
x = random.randint(0,n-1)
y= choice([i for i in range(0,n-1) if i!=x])
答案 2 :(得分:0)
经过一段时间的思考,我想到了以下代码:
n = 5
k = 25
List = random.sample(range(n*n),k)
for i in range(k):
a = List[i] // n
b = List[i] % n
List[i] = (a, b)