C++随机数生成器根本不能正确生成数字

Deu*_*ion -3 c++ random

这是我的功能:

Random(int min, int max)
{
    srand(time(NULL));
    return (rand() % (max-min)) + 1;
    // or
    return (rand() % (max+min)) + 1;
    // or
    return (rand() % (max-min))
    // or
    return (rand() % (max+min))
};
Run Code Online (Sandbox Code Playgroud)

并且它不起作用,如果我说添加随机(5,10)它有时会显示15,5,4.我无法弄清楚,因为所有指南都说"这是它的假设"但是它不起作用.我错过了什么?

这个方法是课程的一部分.

我已尝试将srand(time(NULL))置于:

  1. 一点也不
  2. 在构造函数中
  3. 在方法中

没有结果.

rand()不应该返回0到1之间的值吗?我没有.

Lyt*_*yth 7

  1. srand只打一次电话
  2. 使用return (rand() % (max-min+1)) + min; (+1表示包括max在范围内)
  3. rand()返回0到0之间的值,RAND_MAX并且是一个正整数.