/* rpick.c -- generate a random pick * * int n, N; * int pick[n]; * rpick(n, N, pick); * * rpick pick n elements at random from N. The n elements chosen are * returned in pick. They will be distinct and ordered from small to * large. The pick[i] range from 0 to N-1. */ #include #include "common.h" int irand(); void rpick(n, N, pick) int n, N; int pick[]; { register int i, j, k; int p; if ( /* make sure values valid */ (n < 0) || (N < 0) || (N < n) ) return; for(i=0; i p) break; p++; } for(j=i; j>k; j--) { pick[j] = pick[j-1]; } pick[k] = p; } }