[Haskell-cafe] Acquiring a random set of a specific size (w/o dups) from a range of Ints
alex.solla at gmail.com
Tue Jun 14 02:27:50 CEST 2011
On Mon, Jun 13, 2011 at 4:56 PM, michael rice <nowgate at yahoo.com> wrote:
> Is there an (existing) way to select 5 Ints randomly (no duplicates) from a
> population, say 1-20 (inclusive)?
This is as close as I have gotten, but it is only probabilistically true.
take_n_unique_randoms_in_range :: ( Ord random
, Random random
, MonadIO io
) => Int -> (random, random) -> io
take_n_unique_randoms_in_range n (a,b) = liftM ((take n) . nub) .
(replicateM (3*n)) . liftIO $ randomRIO (a,b)
I'm going to put making an iteratee-based solution on my agenda.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Haskell-Cafe