include include include include using namespace std int main
#include <iostream>
 #include <fstream>
 #include <cstdlib>
 #include <ctime>
 using namespace std;
int main()
{
//unsigned seed = time(0);
    //srand(seed);
    srand(static_cast<unsigned long>(time(0)));
    long y;
    ofstream OutputFile;
    OutputFile.open(\"1000Ints.txt\");
    for (int i = 0; i < 100000; i++)
    {
        y = (rand() % (1000001)) + 0;
        OutputFile << y << endl;
    }
}
I need to generate 100000 integer values (in the range of 0 to 1000000), but when I used rand(), I cannot generate all numbers. The largest number I can generate is 30000 and something.
Solution
Hi If you need any help please inform
=================================================================
 This value we get using rand() function is library-dependent, Highest value a rand function return is
 32767, so you are getting all values in between 0 and 30000.
and you need values in between 0 and 1000000
Now 32767*30 is 983010
If we multiply 3267 with 300 it will be like 9830100
Now 9830100%1000001=830091 (i.e you got a 6 digit numer)
So what you can do for 5000 number you can only choose
y = (rand() % (1000001)) + 0;
but for remaining one you can choose like
y=((rand()*300)%(1000001)) +0;
============================
#include <iostream>
 #include <fstream>
 #include <cstdlib>
 #include <ctime>
 using namespace std;
 int main()
 {
 //unsigned seed = time(0);
 //srand(seed);
 srand(static_cast<unsigned long>(time(0)));
 long y;
 ofstream OutputFile;
 OutputFile.open(\"1000Ints.txt\");
for (int i = 0; i < 50000; i++)
 {
 y = (rand() % (1000001)) + 0;
 OutputFile << y << endl;
 }
 for (int i = 0; i < 50000; i++)
 {
 y=((rand()*300)%(1000001)) +0;
 OutputFile << y << endl;
 }
 }
==========================================
output will be like
16977
 22256
 6463
 6463
 11812
 13240
 3424
 23470
 20389
 17672
 26426
----
-------
986997
 21695
 947899
 683498
 883194
 640993
 274200
 449694
 432894
 343996
 229491


