0
如果我生成用下面的代码的随机数:是否有可能获得先前由std :: uniform_int_distribution生成的随机数?
#include <iostream>
#include <random>
int main()
{
std::random_device rd;
std::mt19937 gen(rd());
std::uniform_int_distribution<> dis(0, 999);
for (int n=0; n<1000; ++n)
std::cout << dis(gen) << ' ';
std::cout << '\n';
}
是有可能得到相反的顺序先前生成的值(不将它们保存到一个数组,等等)循环结束后, ,并做这样的事情:
for (int n=0; n<1000; ++n)
std::cout << GetPrev(dis, gen) << ' ';
std::cout << '\n';
?
不,这是不可能的。你必须自己保存号码。如果你想以相反的顺序排列它们,我可以建议一个['std :: stack'](http://en.cppreference.com/w/cpp/container/stack)? –