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)? –