Для n = 5
, две случайные последовательности целых чисел в [0, 2] может выглядеть следующим образом:Numpy: Сформировать 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
Есть ли лучший способ сделать это?