Your question is mathematically inconsistent. Take a very simple example, a population of 2: [1,2], and you want to generate 1 with probability 3/4 and 2 with probability 1/4.
If you draw 2 samples without replacement you either get [1,2] or [2,1], so the prescribed probabilities of 3/4 and 1/4 never meet.
Now you could simulate the real-life drawing by a loop:
U = 1:20;
p=[0.01 0.05 0.11 0.08 0.02 0.02 0.01 ...
0.055 0.1 0.2 0.05 0.05 0.01 0.03 ...
0.025 0.06 0.04 0.05 0.01 0.02];
n = 10;
nset = 10000;
% without replacement
ik = zeros(nset,n);
for i=1:nset
pk = p(:).';
for k=1:n
c = cumsum([0,pk]);
c = c/c(end);
[~,d] = histc(rand,c);
ik(k) = d;
pk(d) = 0;
end
end
wor = U(ik);
This give one set of drawing n element without replacement.
Repeat it as long as you like. But there is no warranty the appearance is the prescribed P.
For example the element #10 has prescribed probability of 0.2, however it can appears at mots once in when drawing a sequence of 10 without replacement, so the probability the element #10 appears can never goes above 1/10 = 0.1, which is not 0.2 you want it to be. (The histogram plot in the subsequent comment bellow also confirms this, look at bin #10)
Best Answer