随机数C ++

时间:2016-09-04 13:51:16

标签: c++

很抱歉。我的问题是我正在尝试生成一个输入为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;
}

1 个答案:

答案 0 :(得分:1)

不要使用srandrandrand的周期非常短,通常基于线性同余生成器(非常糟糕的随机属性)而不要使用模数(%)来获得数字范围 - 你引入了偏见。请改用the random header中的设施。 在这种情况下,您可能需要std::random_device(对于种子),std::mt19937(对于生成器)和std::uniform_int_distribution(对于分发)。

顺便说一下,你总是播种的值为0(零)。