10-02-2013, 03:36 PM

SAMPLE - Generate a list of random integers from 1 to N using sample without replacement.Author: Eddie Shore

Date: 10/1/2013Syntax: SAMPLE(L, N)

L = length of desired list

N = high integer

If L > N, an error occurs.Output: random sample

Program:

EXPORT SAMPLE(L,N)

BEGIN

// length, number

LOCAL I, K, T, num;// error cond

IF L > N THEN

1/0;

END;// main program

L1:=MAKELIST(0,X,1,L,1);

L1(1):=RANDINT(N-1)+1;

I:= 2;REPEAT

num:=RANDINT(N-1)+1;

T:=1// test for uniqueness

FOR K FROM 1 TO I DO

IF num == L1(K) THEN

T:=T + 1;

END;

END;IF T == 1 THEN

L1(I) := num;

I := I + 1;

END;UNTIL I == L + 1;

RETURN L1;

END;Examples:

SAMPLE(5,9) (length of 5, n = 9) can generate:

{5, 4, 8, 2, 6}

{9, 7, 8, 1, 2}

{4, 3, 6, 5, 2}