comp.lang.ada
 help / color / mirror / Atom feed
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



  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