I am performing experiments that sometimes (cannot predict in advance) generate random numbers using rand()
function. The problem is that these experiments take a while (sometimes even a week) and during that time the application or computer can crash. I already implemented a feature to save a log of the current work so I can continue if crash happens, but besides the used seed value I would also like to save how many times the rand()
function was already called so when I continue (load from the last log) I don't just reinitialize srand
with the same seed value, but to continue from the very next random number it should be generated. One of the solutions I can think of is simply this:
int getRandomValue(int maxValue, int* counter){
static int count = 0;
*counter = ++count;
return rand() % maxValue + 1;
}
And, after loading the last log I would simply call rand()
for counter
number of times. But, this would require me to change every rand()
call with getRandomValue
call, and I would like to avoid it if possible, since there are hundreds of places in my code where this should be done. Is there anything more simple than this?
Aucun commentaire:
Enregistrer un commentaire