Chapter 18: Random Number Generation

RNPER

Generates a pseudorandom permutation.

Required Arguments

IPER — Vector of length K containing the random permutation of the integers from 1 to K.   (Output)

Optional Arguments

K — Number of integers to be permuted.   (Input)
Default: K = size (IPER,1).

FORTRAN 90 Interface

Generic:                              CALL RNPER (IPER [,…])

Specific:                             The specific interface name is S_RNPER.

FORTRAN 77 Interface

Single:                                CALL RNPER (K, IPER)

Description

Routine RNPER generates a pseudorandom permutation of the integers from 1 to K. It begins by filling a vector of length K with the consecutive integers 1 to K. Then, with M initially equal to K, a random index J between 1 and M (inclusive) is generated. The element of the vector with the index M and the element with index J swap places in the vector. M is then decremented by 1 and the process repeated until M = 1.

Comments

The routine RNSET can be used to initialize the seed of the random number generator. The routine RNOPT can be used to select the form of the generator.

Example

In this example, RNPER is called to produce a pseudorandom permutation of the integers from 1 to 10.

 

      USE RNPER_INT

      USE UMACH_INT

      USE RNSET_INT

 

      IMPLICIT   NONE

      INTEGER    IPER(10), ISEED, NOUT

!

      CALL UMACH (2, NOUT)

!                                 Initialize seed of random number

!                                 generator.

      ISEED = 123457

      CALL RNSET (ISEED)

      CALL RNPER (IPER)

      WRITE (NOUT,99999) IPER

99999 FORMAT ('   Random permutation of the integers from 1 to 10', /, &

            10I5)

      END

Output

 

Random permutation of the integers from 1 to 10

 5    9    2    8    1    6    4    7    3   10



http://www.vni.com/
PHONE: 713.784.3131
FAX:713.781.9260