From: Mark Phillips 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: NNTP-Posting-Host: silver.cs.umanitoba.ca Mime-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII 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