[Haskell-beginners] Re: [Haskell-cafe] Re: permuting a list

Alberto Ruiz 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.

-Alberto


More information about the Haskell-Cafe mailing list