// // File: RandDef.cpp // Source file of definitions of random number generating functions // #include "RandDef.h" // // Function to seed the random number generator // Pre: none // Post: Random number generator has been seeded. // void SeedRand(void) { srand( unsigned(time((time_t *)NULL)) ); } // // Function to return a random double between 0 and 1 // Pre: The generator is seeded. // Post: A random double greater than or equal to 0 // and less than 1 has been returned. // double random_double(void) { return ( rand() / (double(RAND_MAX) + 1) ); } // // Function to generate a random double between LowerBound // and UpperBound // Pre: LowerBound and UpperBound are of type double with // LowerBound < UpperBound. The generator is seeded. // Post: A random double greater than or equal to LowerBound // and less than UpperBound has been returned. // double random_double_range(double LowerBound, double UpperBound) { double random_0_1; // random number between 0 and 1 random_0_1 = rand() / (double(RAND_MAX) + 1); return ((UpperBound - LowerBound) * random_0_1 + LowerBound); } // // Function to generate a random integer between // 0 and UpperBound - 1 // Pre: UpperBound is a positive integer. The generator is seeded. // Post: A random integer between 0 and UpperBound - 1 // has been returned. // int random_int(int UpperBound) { double random_0_1; // random number between 0 and 1 random_0_1 = rand() / (double(RAND_MAX) + 1); return int(UpperBound * random_0_1); } // // Function to generate a random integer between // LowerBound and UpperBound - 1 // Pre: LowerBound and UpperBound are integers with // LowerBound < UpperBound. The generator is seeded. // Post: A random integer between LowerBound and // UpperBound - 1 has been returned. // int random_int_range(int LowerBound, int UpperBound) { double random_0_1; // random number between 0 and 1 random_0_1 = rand() / (double(RAND_MAX) + 1); return int((UpperBound - LowerBound) * random_0_1 + LowerBound); }