21xrx.com
2025-03-15 02:46:44 Saturday
文章检索 我的文章 写文章
C++如何生成随机数
2023-06-25 09:02:26 深夜i     --     --
C++ 生成 随机数

C++语言提供了多种生成随机数的方法,这些方法可以应用在各种场合,生成随机数的范围也可以定制,下面将详细介绍一些常用的方法。

1. srand和rand函数

srand函数需要传入一个种子,该种子会被用来生成随机数序列,如果种子相同,则生成的随机数序列也相同。而rand函数则可以生成伪随机数(伪随机数的特点是非常接近随机数而言),并且可以根据需要限定随机数的范围。

使用方法如下:

#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main() {
  srand(time(0)); // 设置种子为当前时间
  for (int i = 0; i < 5; i++) {
    int randomNumber = rand() % 100 + 1// 生成1~100之间的随机数
    cout << randomNumber << endl;
  }
  return 0;
}

2. C++11中的新特性

C++11中加入了一个新的头文件` `用来生成随机数,其中包括了多种不同类型、不同分布的随机数生成器。这些随机数生成器的特点是能够生成真正的随机数,而不是伪随机数序列,因此生成的结果更加随机。

使用方法如下:

#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 < 5; i++) {
    int randomNumber = dis(gen);
    cout << randomNumber << endl;
  }
  return 0;
}

以上就是C++中常用的生成随机数方法,需要根据实际情况选择使用哪种方法。在实际开发中,尤其是编写游戏等需要随机数的应用程序时,随机数生成器的选择尤为重要,因为生成的随机数质量直接影响用户体验。

  
  

评论区