comp.lang.ada
 help / color / mirror / Atom feed
From: Lutz Donnerhacke <lutz@iks-jena.de>
Subject: Re: Ada2005 random
Date: Thu, 3 Apr 2003 10:13:17 +0000 (UTC)
Date: 2003-04-03T10:13:17+00:00	[thread overview]
Message-ID: <slrnb8o29r.oi.lutz@taranis.iks-jena.de> (raw)
In-Reply-To: b6h0fv$hec$1@news.uni-stuttgart.de

* Peter Hermann wrote:
> Lutz and all,
>> * Peter Hermann wrote:
>>> In an application I need a variable discrete random function.
>                               ^^^^^^^^
> with "variable" I meant the following flexibility,  e.g. :
>                   a := random(generator1, 1 , 9);
>                   b := random(generator1, 1 , 8);
>                   c := random(generator1, 3 , 7);

procedure random(g : in out Generator; min, max : X; rand : out X)
  --# derives rand from g, min, max and
  --#            g from g;
  --# pre max > min;
  --# post rand in min .. max;
  is
   absmax : X;
begin
   absmax := X'Last - (X'Last - X'First) mod (max - min);
   --# check absmax > X'First;
   loop
      random(g, rand); --  ... random (g : in out Generator; r : out X) ...
      exit when rand <= absmax;
   end loop;
   return (rand - X'First) mod (max - min) + min;
end random;

Ok, it's the C approach ;-)



  reply	other threads:[~2003-04-03 10:13 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-04-02 13:27 Ada2005 random Peter Hermann
2003-04-02 13:44 ` Lutz Donnerhacke
2003-04-03  9:56   ` Peter Hermann
2003-04-03 10:13     ` Lutz Donnerhacke [this message]
2003-04-04  3:50 ` Steve
2003-04-04 14:30   ` Lutz Donnerhacke
2003-04-05  3:02     ` Steve
2003-04-04  4:33 ` Christoph Grein
2003-04-06 15:44   ` 
2003-04-05  0:14 ` Jeffrey Carter
  -- strict thread matches above, loose matches on Subject: below --
2003-04-03 12:27 David C. Hoos, Sr.
2003-04-03 12:39 ` Peter Hermann
2003-04-03 22:10   ` Randy Brukardt
2003-04-04  7:43     ` Peter Hermann
2003-04-04 10:21     ` Dale Stanbrough
2003-04-04 12:11       ` Stuart Palin
2003-04-04 14:25       ` Lutz Donnerhacke
2003-04-04 21:51         ` Dale Stanbrough
2003-04-05 18:34           ` Samuel Tardieu
2003-04-05  6:46       ` Martin Krischik
2003-04-07 21:07         ` Randy Brukardt
2003-04-13 14:56       ` Robert I. Eachus
2003-04-13 21:58         ` Mark Biggar
2003-04-04 12:20     ` Stuart Palin
2003-04-07  7:26       ` Jean-Etienne Doucet
2003-04-07  8:09         ` Lutz Donnerhacke
2003-04-04  8:27   ` 
2003-04-04 12:14     ` Peter Hermann
2003-04-04 14:26       ` Lutz Donnerhacke
     [not found]     ` <6lk1m-lm3.ln1@beastie.ix.netcom.com>
2003-04-05  7:29       ` Pascal Obry
2003-04-05  9:00         ` tmoran
2003-04-05 17:02           ` Pascal Obry
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox