/* random number generator by John Rehling */ /* based on Sedgewick's _Algorithms_ text */ /* rand() should be called at least once, */ /* before using rnd() */ long int seed; /* seed for randomness */ float rnd() /* returns a float between 0.0 and 1.0 */ { float temp; seed=(seed*8421+1) % 1073741824; temp=abs(seed); temp/=1073741824; return(temp); } void rand() /* obtains seed for generator */ { struct timeval tv; struct timezone tz; gettimeofday(&tv, &tz); /* may not be supported in your C */ seed=tv.tv_sec + tv.tv_usec; /* if not, replace with clock() */ seed=rnd()*1073741824; /* good randomness is hard to find */ }