作为我课程的一部分,我需要找到并重新编码一个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