Мы должны положительные целые числа b,n
с b < n/2
. Мы хотим создать два случайных непересекающихся списка I1, I2
, оба с b
элементами из {0,1,...,n}.
Простой способ сделать это заключается в следующем.
def disjoint_sets(bound,n):
import random
I1=[];I2=[];
L = random.sample(range(0,n+1), n+1)
I1 = L[0:bound]
I2 = L[bound:2*bound]
return I1,I2
Для больших b,n
(скажем, b=100, n>1e7
) предыдущий не эффективен для памяти. Так как L
большой. Мне интересно, есть ли способ получить I1,I2
без использования range(0,n+1)
?