Joel Fritz wrote:
We've been playing with CEERANO to try to construct a list of 13 digit
unique numbers in "random" order.  It looks like that after 20,000 or so,
diminishing returns sets in in a big way.

What we're doing is starting with zero as the seed and using whatever gets
returned in the seed parm as the next seed.  The test program looks at its
output file to see if the current random number is in the file.  If not, it
writes it.  Out of curiosity I tried a run of 99,999--off by 1 <g>--just to
see what I'd get.  1322 of the numbers occurred 70 times, 29 of them
occurred 69 times, and the others occurred once.  I guess I'd expect the
frequencies to be a little more normally distributed.

Looks like using the seed value returned by the function is not a good idea.
Does anyone know what's happening here?
If you look at the documentation for ceeran0, you'll see that using
the seed value returned by the function for the next iteration is
exactly how the seed was intended to be used.  The documentations
states: "On return, CEERAN0 changes the value of seed so that it may
be used as the new seed in the next call."  That's the way many
pseudo-random number generators are supposed to work.

Using the current time is not a good choice for each iteration since
the time may not change between iterations, or may change in too
predictable a fashion.

Clearly, using random numbers is not the best technique to generate
"unique" numbers, and you should perhaps look at some better
technique.  One way to generate unique numbers is to start at 1, and
increment for each new number.  If you want the numbers to "look"
random, then start with some big number, say 293756927, keep
incrementing that, but return the number with the digits rearranged
in some sytematic manner.

Cheers!  Hans





As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.