How about pro-rating the range 0-32767 divided by the max (32767) to get a ratio to multiply against your 370500. Since there are more than 32767 numbers between 0 and 370500, you could hope that the ratio spreads out the useful answers roughly 11 apart. Thus, you could add a second RND(12) to fill in those gaps with a cap on 370500.
R=RND(32767) RATIO=R/32767 X=INT(RATIO*370500)+RND(12) my 1 cent. ----- Original Message ----- From: "Barry Brevik" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Wednesday, November 10, 2004 10:26 PM Subject: RE: [U2] [UV] Random number (RND()) help > >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/ ------- u2-users mailing list [EMAIL PROTECTED] To unsubscribe please visit http://listserver.u2ug.org/
