>Workaround is something like 32768 * Rnd(32767) + Rnd(32767).

Wouldn't that be *unlikely* to generate numbers less than 32767? Or at least
they would be statisticlly skewed away from that lower range.

Maybe something like (for numbers between 0 and 370500):

ITERATIONS = 10000
RND.MAX = 370500
RND.MULX = INT(SQRT(RND.MAX))
RND.ADD = RND.MAX - (RND.MULX * RND.MULX)
LOW.FACTOR = (RND.MULX + RND.ADD) / RND.MAX
IF LOW.FACTOR LT 1 THEN LOW.FACTOR = 1
FOR I = 1 TO ITERATIONS
  IF LOW.FACTOR THEN
    RND.NUM = RND(RND.MULX + RND.ADD)
    LOW.FACTOR -= 1
  END ELSE
    RND.NUM = (RND(RND.MULX) * RND.MULX) + RND.ADD
  END
NEXT
-------
u2-users mailing list
[EMAIL PROTECTED]
To unsubscribe please visit http://listserver.u2ug.org/

Reply via email to