很抱歉。我的问题是我正在尝试生成一个输入为4或55的随机数。使用范围为0 t0 9的srand()
到目前为止,这是我的代码:
using namespace std;
int main() {
int seedVal = 0;
srand(seedVal);
seedVal= time(0);
cout << (rand () % 9) + 1 << endl;
cout << (rand () % 9) + 1 << endl;
return 0;
}
答案 0 :(得分:1)
不要使用srand
和rand
。 rand
的周期非常短,通常基于线性同余生成器(非常糟糕的随机属性)而不要使用模数(%
)来获得数字范围 - 你引入了偏见。请改用the random header中的设施。
在这种情况下,您可能需要std::random_device
(对于种子),std::mt19937
(对于生成器)和std::uniform_int_distribution
(对于分发)。
顺便说一下,你总是播种的值为0
(零)。