随机化种子值C ++ [重复]

问题描述 投票:-1回答:1

这个问题在这里已有答案:

我有一个类函数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;
}

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

c++ class object random seed
1个回答
0
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.