
	/* print out a random number in the range of the arguments:
	                random  x y    
	   yields a random number in the range [x...y].  If there are
	   no arguments, use 0 and 1. */

#include <stdio.h>

#define MAXRAND  32767

main(argc, argv)
int argc;
char *argv[];
{
	double x, min, max, diff;
	long t, time();

	if (argc == 1) {
		min = 0.0;
		max = 1.0;
	}
	else if (argc == 2) {
		if (sscanf(argv[1], "%lf", &max) != 1) {
			fprintf(stderr, "usage: random [ min [ max ] ]\n");
			exit(1);
		}
	}
	else if (argc == 3) {
		if ((sscanf(argv[1], "%lf", &min) != 1) ||
		    (sscanf(argv[2], "%lf", &max) != 1)) {
			fprintf(stderr, "usage: random [ min [ max ] ]\n");
			exit(1);
		}
	}
	else {
		fprintf(stderr, "usage: random [ min [ max ] ]\n");
		exit(1);
	}

	if ((diff = max - min) <= 0.0) {
		fprintf(stderr, "usage: random [ min [ max ] ]\n");
		exit(1);
	}
	t = time((long *) 0);
	srand((unsigned int) t);
	x = (double)rand()/(double)MAXRAND;
	x = min + diff*x;
	printf("%lf\n", x);
	exit(0);
}


