21xrx.com
2024-12-22 22:44:52 Sunday
登录
文章检索 我的文章 写文章
C++实现随机数的方法
2023-07-09 08:29:43 深夜i     --     --
C++ 随机数 实现方法

C++是一门广泛应用于计算机编程领域的高级编程语言。在很多应用场景中,需要生成随机数,而C++中也有多种实现随机数的方法。

其中,C++标准库中的rand()函数是最基本的随机数生成函数。使用该函数需要包含头文件 ,调用时可以通过srand()函数设置种子,以保证生成的随机数是真正随机的。示例如下:


#include <cstdlib>

#include <ctime>

#include <iostream>

using namespace std;

int main()

{

  srand(time(NULL)); // 设置种子

  for(int i=0; i<10; i++)

  {

    cout << rand()%100 << " "; // 生成0-99之间的随机数

  }

  cout << endl;

  return 0;

}

除此之外,C++11中新增了一个头文件 ,其中包含了多种随机数生成器,对应不同分布情况。这些生成器分别定义在std::random_device、std::mt19937、std::uniform_int_distribution等类中,可以满足不同的需求。示例如下:


#include <iostream>

#include <random>

using namespace std;

int main()

{

  random_device rd; // 随机数引擎

  mt19937 gen(rd()); // Mersenne Twister算法

  uniform_int_distribution<> dis(1, 100); // 生成1-100之间均匀分布的整数

  for(int i=0; i<10; i++)

  {

    cout << dis(gen) << " ";

  }

  cout << endl;

  return 0;

}

上述代码使用了Mersenne Twister算法生成随机数,保证生成的随机数是高质量的。同时,生成器和分布器通过重载()运算符实现了调用,使得使用变得更加简单。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复