The three rules of Ruby Quiz:

1.  Please do not post any solutions or spoiler discussion for this quiz until
48 hours have passed from the time on this message.

2.  Support Ruby Quiz by submitting ideas as often as you can:

http://www.rubyquiz.com/

3.  Enjoy!

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

This week's Ruby quiz is a classic sampling problem that I've seen many
interesting solutions for in the past.

The challenge is to implement a program called "sample" that takes exactly two
integer inputs.  The first of those should be the number of members you would
like included in the sample.  The second is the upper boundary (exclusive) of
the range of integers members can be selected from.  The lower boundary is zero
(inclusive).

Your program should output exactly the requested number of members from the
defined range to STDOUT, one number per line.  Each member must be unique and
they should appear in sorted order.

Here are some sample runs of my solution to illustrate the task:

	$ ./sample 
	Usage:  sample MEMBERS LIMIT
	
	MEMBERS:  The number of members you want in the sample.  (Integer)
	  LIMIT:  The upper limit for the sample range.  All     (Integer)
	          members will between 0 and LIMIT - 1.
	
	Note that MEMBERS must be less than LIMIT.
	$ ./sample 3 10
	0
	1
	5
	$ ./sample 3 10
	1
	2
	8
	$ ./sample 3 10
	2
	3
	9
	$ ./sample 9 10
	0
	2
	3
	4
	5
	6
	7
	8
	9
	$ ./sample 20 400
	1
	3
	4
	25
	32
	36
	42
	56
	93
	111
	137
	139
	153
	213
	222
	226
	263
	289
	293
	314

Now for all the algorithm junkies out there that enjoy a little friendly
competition, here's the time to beat:

	$ time ./sample 5_000_000 1_000_000_000 > big_sample.txt
	
	real    30m10.593s
	user    29m54.544s
	sys     0m4.736s
	$ ls -l big_sample.txt 
	-rw-r--r--   1 james  staff  49011436 Jul 11 15:26 big_sample.txt
	$ head big_sample.txt 
	112
	221
	450
	655
	900
	1216
	1399
	1469
	1494
	1628
	$ tail big_sample.txt 
	999995325
	999996330
	999996552
	999996682
	999997426
	999997676
	999998253
	999999153
	999999658
	999999693