I am trying to use the function discard
to skip numbers in a sequence of random numbers. Here is my try:
#include <random>
#include <iostream>
using namespace std;
int main ()
{
unsigned seed = 1;
uniform_real_distribution<> dis(0,10);
mt19937 gen (seed);
cout << dis(gen) << endl;
//gen.discard(1); // supposed to be the same of `dis(gen)`?
cout << dis(gen) << endl;
cout << dis(gen) << endl;
}
The output of this code is
9.97185
9.32557
1.28124
If I uncomment the line with gen.discard(1)
I get
9.97185
0.00114381
3.02333
but I was expecting that the first two numbers are 9.97185
and 1.28124
, since the number 9.32557
would be skipped.
Q: How to use discard
properly or, is there an alternative solution with the same effect I want? I could simply use dis(gen)
, but maybe it i
Thanks.
Aucun commentaire:
Enregistrer un commentaire