Solved

Random numbers

Posted on 1998-10-18
3
180 Views
Last Modified: 2010-03-05
I need a section of code to generate a random number between 0 and some value n and then round it down
0
Comment
Question by:jedimike
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
3 Comments
 
LVL 5

Accepted Solution

by:
b2pi earned 20 total points
ID: 1205474
'round it down' is a bit confusing.

Basically, though, you first need to set a seed if your perl is before
v 5.004 (If you don't, you'll get random numbers, but everytime you
run  the program, you could get about the same random numbers).  Just
to be safe, then


srand( time ^ $$ );

(There are many quibbles that the above might not be random enough.
Chances are, it is. If not, go to www.perl.com and search for
TrulyRandom)

Having seeded, you get a random value r (0 <= r < y ) by calling

$r = rand(y);

if n is a relatively large integer, then, you could do

$r = int(rand(n))

0
 
LVL 84

Expert Comment

by:ozo
ID: 1205475
I would prefer ( time + $$ ) as a seed over ( time ^ $$ )
If $$ has a tendancy to be increasing, it could be easy for ( time ^ $$ ) to be tha same on subsequent runs.
(Using 5.004 may be even more preferred)
0
 
LVL 5

Expert Comment

by:b2pi
ID: 1205476
That requires that $$ is increasing at about the same rate as is time,
so $$ is approximately uniformly (approximately uniformly? Mea culpa,
mea maxima culpa) increasing by 1 per second.  If I remember my
combinatorics correctly (backed up by the perldoc page on srand) that
_still_ gives a 1 in 3 chance of being identical, nu? So if you're on
a machine that is averaging 1 pid per second (no more, no less), then
you've a 1 in 3 chance of problems.  If one's that worried about it,
best go to TrulyRandom, or, my all time favorite, make use of
http://lavarand.sgi.com 
0

Featured Post

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

I've just discovered very important differences between Windows an Unix formats in Perl,at least 5.xx.. MOST IMPORTANT: Use Unix file format while saving Your script. otherwise it will have ^M s or smth likely weird in the EOL, Then DO NOT use m…
In the distant past (last year) I hacked together a little toy that would allow a couple of Manager types to query, preview, and extract data from a number of MongoDB instances, to their tool of choice: Excel (http://dilbert.com/strips/comic/2007-08…
Explain concepts important to validation of email addresses with regular expressions. Applies to most languages/tools that uses regular expressions. Consider email address RFCs: Look at HTML5 form input element (with type=email) regex pattern: T…
Six Sigma Control Plans

695 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question