对于n = 5
,[0,2]中的两个随机整数序列可能如下所示:
l1 = [2, 0, 2, 2, 0]
l2 = [0, 1, 2, 2, 2]
我想确保l1[i] != l2[i]
对于所有i
。我当前的方法(循环所有值并替换重叠)似乎很笨拙:
n = 5
sample = np.arange(3)
l1 = np.random.choice(sample, size=n)
l2 = np.random.choice(sample, size=n)
mask = np.ones(sample.size, dtype=bool)
for i in xrange(n):
if l1[i] == l2[i]:
mask[l1[i]] = False
l2[i] = np.random.choice(sample[mask])
mask[l1[i]] = True
有没有更好的办法?你知道吗
一种方法是计算
l1
,然后为每个元素计算一组距离或偏移量,并确保偏移量不能为0:然后可以将这些偏移量添加到
l1
,并将结果包装回范围:相关问题 更多 >
编程相关推荐