It has been said that a monkey pushing keys at random on a tyoewriter could prod
ID: 3566786 • Letter: I
Question
It has been said that a monkey pushing keys at random on a tyoewriter could produce the works of shakespear given enough time you can simulate this by having a program select and display letters at random count the number of letters typed until the program produces one of these two letter words. at, is, he, we,up, or on. whenone of these words is produced stop the program and display the total numer of letters typed. Use this random numer generator
#include <iostream>
#include <cmath>
#include <ctime>
using namespace std;
// Gernerate random numbers
int main()
{
const int NUMBERS = 10;
double randvalue;
int i,idex,i2;
char letters[] = "abcdefghik";
char twolet[2];
cout << "TIme in seconds since 1/1/1970 " << time(NULL) << endl;
cout << RAND_MAX << endl; //contains largest random number generated by srand
srand(time(NULL)); // initializes random number generator using time in seconds
for (i = 1; i <= NUMBERS; i++)
{
randvalue = rand();
idex = int(10 * randvalue / RAND_MAX);
// cout << randvalue << " Normalized value " << randvalue/RAND_MAX << endl;
// cout << randvalue << "Integer value " << int(10*randvalue / RAND_MAX) << endl;
twolet[0] = letters[idex];
randvalue = rand();
idex = int(10 * randvalue / RAND_MAX);
twolet[1] = letters[idex];
for (i2 = 0; i2 <= 1; i2++)
{
cout << twolet[i2];
}
cout << endl;
}
return 0;
Explanation / Answer
#include <iostream>
#include <cmath>
#include <ctime>
using namespace std;
// Gernerate random numbers
int main()
{
const int NUMBERS = 10;
double randvalue;
int i,idex,i2,count=0;
char letters[] = "abcdefghik";
char twolet[2];
cout << "TIme in seconds since 1/1/1970 " << time(NULL) << endl;
cout << RAND_MAX << endl; //contains largest random number generated by srand
srand(time(NULL)); // initializes random number generator using time in seconds
for (i = 1; i <= NUMBERS; i++)
{
randvalue = rand();
idex = int(10 * randvalue / RAND_MAX);
// cout << randvalue << " Normalized value " << randvalue/RAND_MAX << endl;
// cout << randvalue << "Integer value " << int(10*randvalue / RAND_MAX) << endl;
twolet[0] = letters[idex];
count++;
randvalue = rand();
count++;
idex = int(10 * randvalue / RAND_MAX);
twolet[1] = letters[idex];
if((twolet[0] == 'a' && twolet[0] == 't')||
(twolet[0] == 'i' && twolet[1] == 's')||
(twolet[0] == 'h' && twolet[1] == 'e')||
(twolet[0] == 'w' && twolet[1] == 'e')||
(twolet[0] == 'u' && twolet[1] == 'p')||
(twolet[0] == 'o' && twolet[1] == 'r')||
(twolet[0] == 'o' && twolet[1] == 'n'))
{
for (i2 = 0; i2 <= 1; i2++)
{
cout << twolet[i2];
}
break; //to end the program
}
cout << endl;
}
return 0;
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.