RosettaCodeData/Task/Knuths-algorithm-S/Zkl/knuths-algorithm-s-1.zkl

9 lines
225 B
Plaintext

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())
}