Re: Random number question?

From: Paul Nutteing (nutteing_at_quickfindit.com)
Date: 06/21/04


Date: Mon, 21 Jun 2004 18:51:35 +0100


"Paul Allen Panks" <panks@sdf.lonestar.org> wrote in message
news:cb5umk$por$1@chessie.cirr.com...
> How does HLA's random number generator differ from traditional BASIC's
> version? I've long based much of my adventure gaming on random numbers,
> especially during player/monster fighting. Does seeding a number truly
> make it random, or only quasi-random?
>
> Let's say I have a number between 1 and 35. What guarantee do I have that
> the computer won't habitually (or accidentally) pick the same range of
> numbers twice? Or the same individual number twice?
>
> To find out, I wrote a simple QBasic program below:
>
> 1 CLEAR
> 5 CLS : PRINT "Random Number test"
> 10 FOR x = 1 TO 10
> 20 RANDOMIZE TIMER
> 30 i = INT(RND * 35) + 1
> 40 PRINT i
> 45 NEXT x
>
> The program was run three separate times, with the following results:
>
> Test #1
> Random Number test
> 27
> 25
> 17
> 31
> 24
> 18
> 27
> 34
> 23
> 22
>
> Test #2
> Random Number test
> 32
> 29
> 21
> 35
> 29
> 22
> 32
> 4
> 27
> 27
>
> Test #3
> Random Number test
> 21
> 18
> 10
> 24
> 17
> 11
> 21
> 28
> 16
> 16
>
> Ah oh...the last two tests repeated the last two sets of numbers not once
> but TWICE! That's not good!
>
> Now for the same program in HLA:
>
> program random;
> #include ("console.hhf");
> #include ("stdlib.hhf");
> #include ("math.hhf");
> static
> i:int32:=0;
> x:int32:=0;
> begin random;
> console.cls();
> stdout.put("Random number test",nl);
> start:
> add(1,x);
> rand.randomize();
> rand.urange(1,35); // pick a random number, 1 through 35
> mov(eax,i); // move it into i variable
> mov(i,eax); // set i to eax value
> stdout.put(i,nl);
> if(x<10) then
> jmp start;
> endif;
> end random;
>
> The HLA version gives the following 3 results:
>
> Test #1
> Random number test
> 29
> 24
> 11
> 19
> 22
> 8
> 27
> 33
> 27
> 28
>
> Test #2
> Random number test
> 19
> 4
> 32
> 30
> 23
> 34
> 24
> 20
> 20
> 30
>
> Test #3
> Random number test
> 35
> 26
> 29
> 17
> 26
> 18
> 33
> 29
> 19
> 1
>
> Some repeats, but not as bad as before.
>
> Is there a way to truly limit the number of repeats during a set of random
> number generation? I can foresee a lot of random numbers in my own mind,
> but they have to be truly, truly random for the random number generator to
> be doing a good job.
>
> Any ideas as to why both sets of random number generators seem different
> in functionality?
>
> Sincerely,
>
> Paul Panks
> dunric@gmail.com
>
> --
> panks@sdf.lonestar.org
> SDF Public Access UNIX System - http://sdf.lonestar.org

I needed a reliable RNG that didn't throw up repeats as
I wanted to simulate a large DNA profile database
using totally randomly generated 'alleles'. Each profile
consisting of 20 random selections from (an average of ) 12 integres in
effect.
I had to throw out 2 other versions as they produced
 repeating sequences when called 100,000s of times.
I was calling the RNG 80 million times in sequence
and other runs sampling from 200 million and checking for
matches. The last thing I wanted was the RNG throwing
up repeats as it was probality of accidental chance matches
I was interested in. All matches produced were not a
manifest of repeats in the RNG using this RNG form, and
0<p<1
***********
Randomize
z = 2 ^ 24
a = 214013
c = 2531011
x0 = Timer

  temp = x0 * a + c
  temp = temp / z
  x1 = (temp - Fix(temp)) * z
  x0 = x1
  p = x1 / z
***********

The above generator using VB and Word97 sort macro etc
( apologies, I'm not a programmer ) simulation of large DNA profile database
http://www.nutteing2.freeservers.com/dnas5.htm
or nutteingd in a search engine

email nonarevers@yahoo.co.....uk (remove 4 of 5 dots)



Relevant Pages

  • Re: Random number question?
    ... > How does HLA's random number generator differ from traditional BASIC's ... Or the same individual number twice? ... > Some repeats, but not as bad as before. ... Runs of numbers and other patterns occur far more ...
    (sci.math)
  • Re: randomize
    ... > generator" and it is statistically poor at best. ... > repeats, and repeats. ... The actual sequence generator in all these tools is also a "Pseudo-random ...
    (microsoft.public.vb.general.discussion)
  • Re: PRNG
    ... that is a non periodic Pseudo Random Number Generator. ... so large that for all practical purposes it never repeats, ... Generator algorithm on a computer that lacks infinite memory. ... A cryptographically secure prng is quite an achievement. ...
    (sci.crypt)
  • Re: Random number question?
    ... > How does HLA's random number generator differ from traditional BASIC's ... definition as they all use an algorithm to compute the next ... Or the same individual number twice? ... Repeats are perfectly reasonable in a random number generator. ...
    (alt.lang.asm)
  • Re: Agduria dungeon generation
    ... stage of the algorithm and rise appropriate error, ... A NTAE generator doesn't have to have any ... NTAE will happily accept all valid inputs and RNG states and produce ...
    (rec.games.roguelike.development)