(from the c++ documentation) the modulus (%) operator gives the remainder after dividing When you use it with rand () you are using it to set an upper limit (n) on what the random number can be. These sequences are repeatable by calling srand() with the same seed value. Many implementations of rand() cycle through a short list of numbers, and the low bits have shorter cycles The way that some programs call rand() is awful, and calculating a good seed to pass to srand() is hard A second lesson is that this shows another way in which <random> is easier to use than rand() and manually computing your own distributions
The op's reasoning for trying it was wrong, but had this been necessary, the ub could've been avoided by adding 1.0 instead of 1, which would coerce rand_max to double type and so avoid the integer overflow. Usage of rand() is usually frowned upon despite using a seed via srand() Why would that be the case What better alternatives are available? The actual implementation of the random number generator is left unspecified, so the actual behavior is specific to the implementation The important thing to remember is that rand does not return random numbers
What i mean or expect is i assume rand () will get some parameter from srand () so it knows to generate different numbers each time I assume it would look something like rand (srand (time (null)) It's like initializing a variable without using it to me Srand is being initialized, but i don't see it being used This basically just did the same as the program did in the first place but outputted a different set of numbers (which makes sense since the first number generated by rand () is always 41.) the only thing i could think of to make this more random is to Have the user input a number and set that as the seed (which would be easy to implement, but this is a last resort) or somehow.
OPEN