www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1994/11/03/03:30:49

Date: Wed, 2 Nov 94 22:29:27 EST
From: dliu AT faraday-gw DOT njit DOT edu (Dong Liu)
To: DJGPP AT Sun DOT SOE DOT Clarkson DOT edu
Subject: How about random (Was Is it random number sequence?)
References: <9411021642 DOT AA01484 AT fir215>
<9411021907 DOT AA07012 AT shako DOT sk DOT tsukuba DOT ac DOT jp>
Mailer: VM 5.32 (beta) for GNU Emacs 18.59.5

How about the function random, let me cite the man page on SunOS

DESCRIPTION
  random() uses a non-linear additive feedback  random  number
  generator employing a default table of size 31 long integers
  to return successive pseudo-random numbers in the range from
  0  to (2**31)-1.  The period of this random number generator
  is very large, approximately 16*((2**31)-1).
  random/srandom have (almost) the same calling  sequence  and
  initialization  properties as rand/srand.  The difference is
  that rand(3V) produces a much  less  random  sequence  -  in
  fact,  the  low  dozen  bits  generated by rand go through a
  cyclic pattern.  All the  bits  generated  by  random()  are
  usable.  For example,
       random()&01
  will produce a random binary value.
  ......

Here is my little test program

main(int argc, char **argv)
{
        int i;
	    srandom(atoi(argv[1]));
	    for(i=0; i<30; ++i)
		      printf(" %d", random()&3);
	      putchar('\n');
}

Here is the results on Sun
2 rice% a.out 7
 0 0 0 0 1 2 0 1 0 3 0 2 2 2 0 1 2 1 1 1 3 1 0 0 1 1 0 0 0 1
3 rice% a.out 1
 1 2 3 2 3 1 2 3 3 2 3 3 1 0 3 3 3 2 0 2 0 1 2 0 3 1 1 3 2 3
4 rice% a.out 3
 2 0 2 0 1 0 0 1 2 1 2 0 0 2 2 1 0 3 3 3 1 1 0 0 1 1 2 2 0 1

And here is the result on Linux

/tmp$ a.out 7
 0 2 2 0 3 2 0 3 0 1 2 0 0 0 2 3 2 3 3 3 3 1 2 0 1 1 2 0 2 3
/tmp$ a.out 1
 1 0 1 2 1 1 2 1 3 0 1 1 3 2 1 1 3 0 2 0 0 1 0 0 3 1 3 3 0 1
/tmp$ a.out 3
 2 2 0 0 3 0 0 3 2 3 0 2 2 0 0 3 0 1 1 1 1 1 2 0 1 1 0 2 2 3

I think the results are pretty good, why not just add "random" and its
friends to go32's C library.

--
Dong Liu  <dliu AT ace DOT njit DOT edu>
Electrical and Computer Engineering Department
New Jersey Institute of Technology, Newark, NJ 07102

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019