🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.lang.modula2
Article #1587

Re: RND Function Needed

#1587
From: Adam Ravid
Date: Thu, 22 Nov 1990 22:43
49 lines
1926 bytes
eiverson@nmsu.edu (Eric Iverson) writes:

> 
> I need a random number generator for Modula-2.  Any help would be
> appreciated.

a nice and simple randomlib stolen from "Data Structures & Prog Design in
Modula-2," L.Nyhoff/S.Leestma (pp 35-37)

DEF MOD RandomLib;
 PROC RandomCard (First,N:CARDINAL):CARDINAL;
 PROC RandomReal () :REAL;  (* returns 0.0-1.0 *)
END RandomLib.

IMP MOD RandomLib;
FROM InOut IMPORT WriteString, WriteLn, ReadCard;  (*excluded on my lib*)
 CONST                          (*I would have put these const in the def!*)
   Mult    =29;
   Modulus =2048;
   Addend  =431;
 VAR
   Seed:CARDINAL;
 PROC RandomReal ():REAL;
  BEGIN
    Seed := Seed * Mult + Addend;
    Seed := Seed MOD Modulus;
    RETURN FLOAT(Seed) / FLOAT(Modulus)
  END RandomReal;
 PROC RandomCard (First,N:CARDINAL):CARDINAL;
  BEGIN
    RETURN First + TRUNC(FLOAT(N) * RandomReal())
  END RandomCard;
 PROC GetSeed;                  (* I excluded this one in my lib *)
  BEGIN
   WriteLn;
   WriteString ("Enter a seed for the random number generator");
   WriteLn;
   WriteString ("(preferable a prime number): ");
   ReadCard (Seed);
   Seed := Seed MOD Modulus
  END GetSeed;
 BEGIN (* library source, executed upon opening of calling program *)
  GetSeed
 END RandomLib;


           Adam ...a word juggler in disguise....
----------------------------------------------------------------------------
pain!adamr                                         cbcscaar@ma.secs.csun.edu
Technical Details
Message-ID: <NN82s1w163w@pain>
Path: arc1-ca.pugleaf.net!utzoo!censor!geac!torsqnt!news-server.csri.toronto.edu!cs.utexas.edu!wuarchive!usc!srhqla!unigold!pain.UUCP!adamr
References: <EIVERSON.90Nov21033311@thrinakia.nmsu.edu>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!censor!geac!torsqnt!news-server.csri.toronto.edu!cs.utexas.edu!wuarchive!usc!srhqla!unigold!pain.UUCP!adamr
From: adamr@pain (Adam Ravid)
Newsgroups: comp.lang.modula2
Subject: Re: RND Function Needed
Message-ID: <NN82s1w163w@pain>
Date: 22 Nov 90 22:43:46 GMT
References: <EIVERSON.90Nov21033311@thrinakia.nmsu.edu>
Organization: Sequoia Public Access Info Network
Lines: 49