# Haskell Quiz/Sampling

### From HaskellWiki

< Haskell Quiz(Difference between revisions)

m (→Solutions) |
BrettGiles (Talk | contribs) (→The Problem: heading case) |
||

(2 intermediate revisions by 2 users not shown) | |||

Line 1: | Line 1: | ||

− | The object of this problem was to generate a sorted random number sample. |
+ | The object of this problem is to generate a sorted random number sample. |

− | ==The Problem== |
+ | ==The problem== |

* http://www.rubyquiz.com/quiz39.html |
* http://www.rubyquiz.com/quiz39.html |
||

Line 9: | Line 9: | ||

* [[Haskell Quiz/Sampling/Solution Dolio|Dan Doel]] |
* [[Haskell Quiz/Sampling/Solution Dolio|Dan Doel]] |
||

* [[Haskell Quiz/Sampling/Solution Kuklewicz|Chris Kuklewicz]] -- linear performance |
* [[Haskell Quiz/Sampling/Solution Kuklewicz|Chris Kuklewicz]] -- linear performance |
||

+ | |||

+ | I did something similar to select random records from a file. Obviously, IO was more time consuming than random generation, so it's probably not a contender. Code is at [http://www.ii.uib.no/~ketil/bioinformatics/repos/rselect/RSelect.lhs]. One optimization I do is that if you ask for more than half the range, the problem is inverted. |
||

+ | |||

+ | I also experimented with selecting the k'th "empty slot" in the Set of already chosen numbers, but in the end it turned out to be faster just to keep selecting numbers until a new one was found. With more access to the internals of Data.Set, this could possibly be competitive. --[[User:KetilMalde|KetilMalde]] 08:00, 31 October 2006 (UTC) |
||

+ | |||

+ | [[Category:Haskell Quiz|Sampling]] |

## Latest revision as of 18:43, 13 February 2007

The object of this problem is to generate a sorted random number sample.

## [edit] 1 The problem

## [edit] 2 Solutions

- Dan Doel
- Chris Kuklewicz -- linear performance

I did something similar to select random records from a file. Obviously, IO was more time consuming than random generation, so it's probably not a contender. Code is at [1]. One optimization I do is that if you ask for more than half the range, the problem is inverted.

I also experimented with selecting the k'th "empty slot" in the Set of already chosen numbers, but in the end it turned out to be faster just to keep selecting numbers until a new one was found. With more access to the internals of Data.Set, this could possibly be competitive. --KetilMalde 08:00, 31 October 2006 (UTC)