S is a sorted list of K unique random integers in the range 1..N.
The implementation uses different techniques depending on the ratio
K/N. For small K/N it generates a set of K random numbers, removes
the duplicates and adds more numbers until |S| is K. For a large K/N
it enumerates 1..N and decides randomly to include the number or
not. For example:
?- randset(5, 5, S).
S = [1, 2, 3, 4, 5]. (always)
?- randset(5, 20, S).
S = [2, 7, 10, 19, 20].
- See also
- - randseq/3.