2个数字之间的C++随机数重置

use*_*513 0 c++ random numbers

下面的函数运行,但每次运行程序时总是返回相同的数字.有没有办法在每次运行程序时生成不同的随机数?

int getrand(int min,int max){
 int rnum = rand()%(max-min)+min;
 return rnum;  
} 
Run Code Online (Sandbox Code Playgroud)

Ker*_* SB 6

您可能希望使用高质量的标准库随机数生成工具:

#include <random>

typedef std::mt19937 rng_type;
std::uniform_int_distribution<rng_type::result_type> udist(min, max);

rng_type rng;

int main()
{
  // seed rng first:
  rng_type::result_type const seedval = 4; // or implement a good get_seed()?
  rng.seed(seedval);

  rng_type::result_type random_number = udist(rng);

  return random_number;
}
Run Code Online (Sandbox Code Playgroud)