My understanding is that a pseudo-random number generator basically just takes some number (the seed), hashes it with a bunch of XORs and bitshifts, and then spits out a really long number from which a remainder can be retrieved to get your "random" number.
Now, usually you'd use time(NULL)
as the seed for rand() in C/C++. However, time(NULL)
only increments every second, not every millisecond. So how, then, can I for loop over rand()
a thousand times in less than one second and still get different numbers as outputs if the seed is still the same time(NULL)
value?