随机化种子值C ++

时间:2017-12-17 04:40:36

标签: c++ class object random seed

我有一个类函数int ComputerClass::getGuess(),每次调用它都会生成一个随机数。在我的main函数中,我创建了类ComputerClass Computer1,Computer2的2个函数并调用了类函数,但它为每个调用返回相同的数字:

cout << Computer1.getGuess()<<endl;
cout << Computer2.getGuess()<<endl;

以下是班级成员函数

int ComputerClass::getGuess()
{
    //Generate randomn number
    srand(time(NULL));
    generatednumber = rand() % 100 + 1;

    //return computers randomly generated #
    cout <<"--(Computer)Please enter a guess between 1-100: "<< 
    generatednumber<<endl;

    return generatednumber;
}

我假设我的问题是种子值,但是我不知道如何设置它以便每次调用它时使数字随机。

1 个答案:

答案 0 :(得分:0)

你应该只为整个程序调用一次srand。当你非常快速地调用时间(NULL)两次时,它通常会返回相同的值,因为时间比你的CPU慢得多。

调用srand后,对rand的每次后续调用都将返回不同的值。