RANDM

Generate a random number

WSupported on Windows
USupported on Unix
VSupported on OpenVMS

 

xcall RANDM(number, seed_1, seed_2)

Arguments

number

Returned with the next random number in the sequence. (n)

seed_1

seed_2

Variables that together determine the next random number to be generated. (n)

Discussion

The RANDM subroutine generates a random number from 0 to 32767.

RANDM generates a random number based on two seed values. Seed_1 and seed_2 must be at least five digits long.

After the number is generated, the RANDM subroutine automatically updates the values in seed_1 and seed_2, so you can call RANDM several times successively to generate a sequence of random numbers.

You can start a new sequence by changing the values in seed_1 and seed_2. Each seed value must be between 0 and 32767.

Examples

The following example generates a random number in the format ZZ,ZZX, based on two numbers entered by the user.

.define TTCHN   ,1
record
    random      ,d5
    seed1       ,d5
    seed2       ,d5
    io          ,a10
    count       ,d4
    i           ,d4
proc
    open(TTCHN, i, "tt:")
    display(TTCHN, "Enter value for seed 1:  ")
    reads(TTCHN, io)
    seed1 = io
    display(TTCHN, "Enter value for seed 2:  ")
    reads(TTCHN, io)
    seed2 = io
    display(TTCHN, "How many numbers?  ")
    reads(TTCHN, io)
    count = io
    for i from 1 thru count
      begin
        xcall randm(random, seed1, seed2)
        io = random, "ZZ,ZZX"
        writes(TTCHN, io)
      end
    stop
end