home | help
SNOBOL4RANDOM(3)		 CSNOBOL4 Manual		SNOBOL4RANDOM(3)

NAME
     snobol4random - SNOBOL4 random number functions

SYNOPSIS
	 -INCLUDE 'random.sno'
		 SRANDOM(number)
		 SRANDOMDEV()
		 number = RANDOM()

DESCRIPTION
     The  functions  described	in  this  manual  page are not cryptographically
     secure.

     The RANDOM() function uses a non-linear  additive	feedback  random  number
     generator employing a default table of size 31 long integers to return suc-
     cessive 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).

     SRANDOM()
	 takes its INTEGER argument as the seed for a new  sequence  of  pseudo-
	 random numbers to be returned by RANDOM().  These sequences are repeat-
	 able  by  calling SRANDOM() with the same seed value.	RANDOM() will by
	 default produce a sequence of numbers that can be duplicated by calling
	 SRANDOM() with 1 as the seed.

     SRANDOMDEV()
	 initializes a state array using the random(4) random number device  (if
	 available)  which  returns  good  random  numbers, suitable for crypto-
	 graphic use.  Note that this particular seeding procedure can	generate
	 states  which are impossible to reproduce by calling SRANDOM() with any
	 value, since the succeeding terms in the state buffer are no longer de-
	 rived from the LC algorithm applied to a fixed  seed.	 Data  from  the
	 random(4)  device  may  be precious, and repeated calls to SRANDOMDEV()
	 should be avoided.  When the  random(4)  device  is  not  available,  a
	 32-bit seed will be generated using time, process id, and an element of
	 the process stack.

SEE ALSO
     snobol4(1), random(3), random(4).

AUTHORS
     Earl T. Cohen
     Jacob S. Rosenberg
     Philip L. Budne

CSNOBOL4B 2.3.1 		 March 31, 2022 		SNOBOL4RANDOM(3)

home | help