Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Generating Random Numbers Textbook ch.6, pg. 356-367 1 Random Number Generation rand function (need to include <cmath>) i = rand(); Generates unsigned integer between 0 and RAND_MAX (usually 32767) Scaling and shifting Examples • i = rand() % 6; generates a number between 0 and 5 (scaling) • i = 1 + rand() % 6; generates a number between 1 and 6 (the “+ 1” makes the shift by 1) 2 Example Program #include <iostream> #include <cmath> using namespace std; void main() { int i; cout<<"Generating 10 random integers in the range 05:"<<endl; for (i=0; i<10 ;i++) cout<<" "<<rand()%6<<" "; cout<<endl; cout<<"Generating 10 random integers in the range 16:"<<endl; for (i=0; i<10 ;i++) cout<<" "<<1+rand()%6<<" "; cout<<endl; } 3 Example’s Program Output Generating 10 random integers in the range 0-5: 5 5 4 4 5 4 0 0 4 2 Generating 10 random integers in the range 1-6: 6 6 5 5 6 5 1 1 5 3 4 Shifting and Scaling •General shifting and scaling –Number = shiftingValue + rand() % scalingFactor –shiftingValue = first number in desired range –scalingFactor = width of desired range 5 Pseudorandom Numbers Calling rand() repeatedly Pseudorandom numbers Gives the same sequence of numbers Preset sequence of "random" numbers Same sequence generated whenever program runs To get different random sequences Provide a seed value (unsigned integer value) Like a random starting point in the sequence The same seed will give the same sequence srand(seed); Used before rand() to set the seed 6 Pseudorandom Numbers (ctd’) OR can use the current time to set the seed No need to explicitly set seed every time srand( time( 0 ) ); The time function returns the current time in seconds (need to include <ctime>) Call the above statement ONCE in the beginning of the main program, before you call the rand() function. 7 Example Program #include <iostream.h> #include <cmath> #include <ctime> using namespace std; void main() { int i; srand(time(0)); //this generates the first seed value cout<<“Generating 10 random integers in the range 0-5 using time as seed:"<<endl; for (i=0; i<10 ;i++) cout<<" "<<rand()%6<<" "; cout<<endl; } 8 Example’s Program Output Generating 10 random integers in the range 0-5 using time as seed: 4 3 5 5 5 2 4 2 4 1 9