ker*_*ssa 1 c++ random function
我有这样的功能,使我像这样随机索引:
size_t randomIndex(vector<int>myVector) {
srand(time(NULL));
size_t index1 = rand() % myVector.size();
return index1;
}
Run Code Online (Sandbox Code Playgroud)
我称之为另一个功能:
void generaTwoIndex(vector<int> myVector2) {
size_t index1 = randomIndex(myVector2);
cout << "index1 = " << index1 << endl;
size_t index2 = randomIndex(myVector2);
cout << "index2 = " << index2 << endl;
}
Run Code Online (Sandbox Code Playgroud)
它生成了相同的索引.有什么问题?提前感谢你的答案.
小智 7
time(NULL)返回自1970年以来的秒数.由于您在调用之间连续两次调用函数,因此time(NULL)在两次调用之间返回相同的值,并且RNG的两个调用都使用相同的值.
生成随机数时,生成器会自动生成其结果.所以你只需要播种一次:
size_t randomIndex(vector<int>myVector) {
size_t index1 = rand() % myVector.size();
return index1;
}
void generaTwoIndex(vector<int> myVector2) {
srand(time(NULL)); //I would recommend moving this line to main()
size_t index1 = randomIndex(myVector2);
cout << "index1 = " << index1 << endl;
size_t index2 = randomIndex(myVector2);
cout << "index2 = " << index2 << endl;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
474 次 |
| 最近记录: |