每次调用函数时生成一个新的随机数

时间:2017-07-12 16:55:47

标签: c++ random

#include <iostream>
#include <ctime>
#include <cstdlib>

 using namespace std;

 int random_Number();
 int random_One();

 int main(){
     cout << "You have : " << random_Number() << endl;
    cout << "The dealer has : " << random_Number() << endl;
}


int random_Number(){
    int v1, v2;
    srand((unsigned)time(NULL));
    v1 = rand() % 10 + 1;
    v2 = rand() % 10 + 1;
    return v1 + v2;
}

如果我理解正确,srand()是一个种子,每次运行程序都会改变,因为时间会发生变化,因此srand()也是如此。但是,由于程序启动后时间不会改变,程序将继续使用相同的种子,从而反复生成相同的数字。

所以,如果我希望我的函数random_Number每次调用时都生成一个新的随机数,那么我还必须更改种子。我假设你需要将你的种子设置为别的而不是时间,但我不知道还有什么?你不能循环种子有点自相矛盾,因为每次迭代需要一个随机数 - 这正是我的问题。

有更好的方法吗?如果没有,你会如何更改种子,以便每次调用函数时它都会变化?

0 个答案:

没有答案