cvs.gedasymbols.org/archives/browse.cgi | search |
From: | Mark Phillips <umphill5 AT cs DOT umanitoba DOT ca> |
Newsgroups: | comp.os.msdos.djgpp |
Subject: | Re: Random Numbers |
Date: | Fri, 16 Jul 1999 09:44:59 -0500 |
Organization: | The University of Manitoba |
Lines: | 23 |
Message-ID: | <Pine.SUN.3.96.990716093758.6668A-100000@silver.cs.umanitoba.ca> |
NNTP-Posting-Host: | silver.cs.umanitoba.ca |
Mime-Version: | 1.0 |
X-Trace: | canopus.cc.umanitoba.ca 932136306 9192 130.179.24.6 (16 Jul 1999 14:45:06 GMT) |
X-Complaints-To: | Postmaster AT cc DOT umanitoba DOT ca |
NNTP-Posting-Date: | 16 Jul 1999 14:45:06 GMT |
To: | djgpp AT delorie DOT com |
DJ-Gateway: | from newsgroup comp.os.msdos.djgpp |
Reply-To: | djgpp AT delorie DOT com |
Well I've seen people get a random number like this: int random_number1to100 = ( rand()%100 ) + 1; But I've also heard that that isn't so good because on some random number generators, the low order bits aren't that random. You could also do: double random_number0to1 = double( rand()/MAX_RANDOM ); That should give you a float from 0 to 1 which you can use your BASIC methods on to convert to any range of numbers. I think the maximum value a random number can take (MAX_RANDOM here) is the same as MAX_INT. Anybody?? If you want to avoid floating point math you could try: int random_number1to100 = 100 * rand() / MAX_RANDOM + 1; but that might cause overflow. And you can't solve that by making it rand() / MAX_RANDOM * 100 + 1 because that will always give you 1. Mark
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |