Ok, I found a solution that works for me. My main concerns:
- I want combinations to
kbe random. - .
p ( row = randperm(N,p)) , .
k . k . , , - N = 10^6, k = 2000, p = 10, 1 .
, , .
function C = kcombsn(N,k,p)
C = randperm(N,p);
Csort = sort(C,2);
while size(C,1) < k
row = randperm(N,p);
row_sort = sort(row);
if isempty(intersect(row_sort,Csort,'rows'))
C = [C; row];
Csort = [Csort; row_sort];
end
end
end
Edit:
MATLAB.