gpt4 book ai didi

python - Numpy:生成 2 个无重叠的 n 个随机数序列

转载 作者:太空宇宙 更新时间:2023-11-04 03:16:07 26 4
gpt4 key购买 nike

对于 n = 5,[0, 2] 中的两个随机整数序列可能如下所示:

 l1 = [2, 0, 2, 2, 0]
l2 = [0, 1, 2, 2, 2]

我想确保所有 il1[i] != l2[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:

ofs = l2 = np.random.choice(sample[:-1], size=n)+1

然后您可以将这些偏移量添加到 l1 并将结果换回到范围内:

l2 = (l1 + ofs) % (sample[-1] + 1)

关于python - Numpy:生成 2 个无重叠的 n 个随机数序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36230152/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com