
10 Dec
2011
10 Dec
'11
2:58 a.m.
On 12/09/2011 05:27 PM, Brent Yorgey wrote:
On Fri, Dec 09, 2011 at 05:05:15PM -0500, David McBride wrote:
randomMonster :: RandomGen g => Rand g Monster randomMonster = do x<- getRandomR (0,2::Int) return $ case x of 0 -> Orc 1 -> Dragon 2 -> Wolf
This looks like a bug to me. Everyone knows orcs are much more likely than dragons. ;)
I once wrote a function something like randomDistributed :: (Num a, RandomGen g) => [(a, b)] -> g -> (b, g) so that e.g. randomDistributed [(10, Orc), (1, Dragon), (3.7, Wolf)] would get you ten orcs for every dragon on average, the overall chance of an orc being (10 / (10 + 1 + 3.7)). ~Isaac