[Haskell-beginners] Re: [Haskell-cafe] Re: permuting a list
aruiz at um.es
Mon Feb 16 04:24:59 EST 2009
Heinrich Apfelmus wrote:
> Alberto Ruiz wrote:
>> How about using random doubles?
>> randomPerm xs = fmap (map snd . sort . flip zip xs) rs
>> where rs = fmap (randoms . mkStdGen) randomIO :: IO [Double]
> Interesting idea. The chance of duplicates should be negligible now, but
> that's because we're using a large amount of random bits, far more than
> n! would require.
Another possibility is using infinite lists of random bits as keys. Then
we only extract from the random number generator the number of bits
required to avoid duplicates.
More information about the Beginners