RosettaCodeData/Task/Knuths-algorithm-S/Zkl/knuths-algorithm-s-1.zkl
2017-09-25 22:28:19 +02:00

8 lines
225 B
Text

fcn s_of_n_creator(n){
fcn(item,ri,N,samples){
i:=ri.inc(); // 1,2,3,4,...
if(i<=N) samples.append(item);
else if ((0).random(i) < N) samples[(0).random(N)] = item;
samples
}.fp1(Ref(1),n,L())
}