random k-sample of a file

Walter Bright newshound1 at digitalmars.com
Thu Oct 9 12:11:10 PDT 2008


Andrei Alexandrescu wrote:
> The challenge, should you accept it, is to write a program that given a 
> number k and a file, outputs k lines picked uniformly at random from the 
> file. (If the file has less than k lines, it should all be output.) The 
> file's size is unbounded so loading it in memory is not an option. How'd 
> you go about it?

1. read the file, counting lines => nlines
2. select k random numbers 0..nlines
3. read the file line by line again, outputting the line if it's one of 
the selected lines



More information about the Digitalmars-d mailing list