作爲我課程的一部分,我需要找到並重新編碼一個rand()隨機數發生器,它輸出與原始數字相同的數字。起始序列爲1804289383 846930886 1681692777 1714636915 1957747793 424238335 719885386 1649760492 596516649 1189641421 1025202362,可在http://ideone.com/H7tsSI如何找到用於C庫的確切rand()?
#include <stdlib.h> /* rand */
#include <iostream>
using namespace std;
int main()
{
for (int i = 0 ; i< 10 ; i++) {
cout << rand() << " ";
}
cout << rand();
return 0;
}
生成我的問題是,我無法找到這臺發電機的原始來源,我不知道我怎麼能從發生器的全部序列中找出發生器工作的方式,這是100個數字。有人可以幫我找到原始的發電機,或教我如何從它的序列中找到發電機?謝謝!
我不知道我的理解。你只是問如何找出默認種子是什麼? – Barmar
或者你需要知道'rand()'使用的是哪種RNG算法? – Barmar
rand()使用的算法不是標準化的 - 它取決於你的實現。如果你的問題是找到起始種子,那麼使用'srand()' - 那麼你就會知道起始種子,並且能夠在閒暇時改變它。 (請記住,通常只需要調用'srand()'一次)。 – Peter