Quote:
Originally Posted by xpi0t0s
The way pseudorandom numbers generally work is to modify the seed according to some formula then use the new value as the next seed. So:
initialise seed <- this is the number you enter
random number = f(seed) <- this function returns a random number as a function of seed
random number 2 = f(random number) <- so the result of the previous is fed into the function again.

So you need to keep seed somewhere instead of discarding it, so I would suggest making the "please enter" part a separate part of randnum[ber]() and pass the seed into this function.

A for loop will do the "display 10 random numbers" bit.
Thanks. I have another question. I have to make sure that the number entered "the seed" is not divisible by 2 or 5. I have an error check in my program but it seems even if it is not divisible it still produces the results. I have posted a copy of my updated code.

Code:
```#include<iostream>
#include<cmath>
#include<ctime>
using namespace std;

double randnum(double);   //function prototype

int main()
{

int x;
double i;

cout<<"This program will produce 10 random numbers given an inital seed\n"<<endl;

cout<<"Please enter the 6 digit seed value non-divisible by 5 or 2\n"<<endl;
cin>>x;

if (x%5 == 0 || x%2 == 0)
{
cout<<"The number entered is not a valid entry"<<endl;
system("pause");
return 0;
}

else
{
cout<<"\nThe random numbers are as follows\n"<<endl;

for(i=1.;i<=10.;i++)           //increments the random numbers
{
x = randnum(x);
cout<<x<<endl;
}

}
system("pause");
return 0;
}

//The function that will produce the random numbers
double randnum(double x)
{
double i;

i = int(997.0 * x/ 1000000.);
x = 997.0 * x - i * 1000000.;

return x;

}```