More efficient ways...
 CodeGuru Home VC++ / MFC / C++ .NET / C# Visual Basic VB Forums Developer.com

1. Junior Member
Join Date
Oct 2012
Posts
2

## More efficient ways...

So I've picked up C++ again after being away from it for 10+ years...*sigh* (the mistakes we make lol). I made a random number generator and work as intended.

Code:
```#include <iostream>
#include <ctime>
#include <cstdlib>

using namespace std;

int main()
{
//time based randomizer
srand(time(0));
//init counter
int count = 1;
//init minimum value
int min = 1;

//loop for generator
for(int x=1; x<=25; x++){

//random number generator equation
int num = min+(rand()%15000);
//max number
if(num>=9999){
num=9999;
}

//text counter
cout << count;
count++;
cout << ". ";
//print random number
cout << num << endl;

}
}```
My question is: Is there a more efficient way to write this? or perhaps a more "correct" way to implement this code? If not...then I'll move on.

2. Elite Member Power Poster
Join Date
Nov 2003
Location
Florida
Posts
12,518

## Re: More efficient ways...

Are you trying to get 1/3 or your numbers to be 9999?

3. Junior Member
Join Date
Oct 2012
Posts
2

## Re: More efficient ways...

No, I can change a few things within the code so that 9999 is not even possible...this code was more of just a "test" to ensure that if any number generated was < 9999 that it set it to 9999 instead of like 10249 or something.

Best was I can explain is imagine a game with min/max values for certain counters (HP, Damage, etc.) So lets say Min Damage was 1 and Max was 9999 but with all calculations were done they actually had a max of 15,000...but based on their level the program will only allow a max of 9999....

Now I can ONLY assume because I haven't test it yet...but I'm hoping later I can change a few things so that like

Code:
`int num = min+(rand()%15000);`
could look more like

Code:
`int num = min+(rand()%variable);`
This way the program would have predetermined values of what "variable" would be but in another section. The same could be said for "min" being a set value for certain conditions, etc etc etc.

I hope I explained that in a more coherent manner...

4. Elite Member Power Poster
Join Date
Apr 2000
Location
Belgium (Europe)
Posts
4,626

## Re: More efficient ways...

rand() used in this way isn't even very good as far as "random" goes, you will see a significantly higher amount of times the lower end of the numbers than the higher end ones.
If you need random numbers in the 0-15000 range, you really need to use something other than the C-lib rand() function.

There's several much better PRNG's in the newer C++ libs. See the <random> header file.

#### Posting Permissions

• You may not post new threads
• You may not post replies
• You may not post attachments
• You may not edit your posts
•