From: Wes Groleau <wesgroleau@despammed.com>
Subject: Re: Discrete random with given distribution ?
Date: Sun, 16 Jun 2002 17:12:24 -0500
Date: 2002-06-16T17:12:24-05:00 [thread overview]
Message-ID: <3D0D0D48.B4B3156A@despammed.com> (raw)
In-Reply-To: e%sO8.7269$in1.593891718@newssvr13.news.prodigy.com
> >My first method must be determined before compile time
> >(Actually, there is a way to approximate it at run-time,
> >but it is a bit clumsy)
>
> >If the probabilities are to be determined at runtime,
> >my second method will work, if you
> Why not just use your second method (summing probabilities till you
> hit a certain level) to calculate, at run time, the population of
> a lookup table, then use the first method to speedily index into
> it to pick a random element.
That's what I meant by a bit clumsy. And it could be a fairly
large lookup table, depending on how accurate you try to be.
Size := 10 ** Digits_Of_Accuracy;
Lookup : array ( 1 .. Size ) of Discrete_Things;
Index := Lookup'First;
for I in Discrete_Things loop
Span := Integer (Probability (I));
for J in Index .. Index + Span - 1 loop
Lookup (J) := I;
end loop;
Index := Index + Span;
end loop;
Hmmm, that's not as clumsy as I thought it would be. :-)
--
Wes Groleau
http://freepages.rootsweb.com/~wgroleau
next prev parent reply other threads:[~2002-06-16 22:12 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-06-13 12:10 Discrete random with given distribution ? Reinert Korsnes
2002-06-13 13:35 ` Larry Kilgallen
2002-06-13 12:49 ` Reinert Korsnes
2002-06-13 14:25 ` Wes Groleau
2002-06-13 16:10 ` Kevin Rigotti
2002-06-13 16:33 ` Jeffrey Carter
2002-06-13 22:23 ` Wes Groleau
2002-06-14 8:01 ` Gautier
2002-06-13 18:01 ` tmoran
2002-06-14 7:20 ` Reinert Korsnes
2002-06-14 18:49 ` Wes Groleau
2002-06-14 21:12 ` tmoran
2002-06-16 22:12 ` Wes Groleau [this message]
2002-06-17 5:01 ` tmoran
2002-06-17 16:15 ` Wes Groleau
2002-06-17 18:17 ` tmoran
2002-06-18 19:22 ` Wes Groleau
2002-06-19 0:34 ` tmoran
2002-06-19 0:53 ` tmoran
2002-06-19 5:13 ` Robert I. Eachus
2002-06-14 10:01 ` Gautier
-- strict thread matches above, loose matches on Subject: below --
2002-06-14 22:56 Gautier direct_replies_not_read
2002-06-14 23:10 ` tmoran
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox