21xrx.com
2024-12-23 02:07:15 Monday
登录
文章检索 我的文章 写文章
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++中常用的生成随机数方法,需要根据实际情况选择使用哪种方法。在实际开发中,尤其是编写游戏等需要随机数的应用程序时,随机数生成器的选择尤为重要,因为生成的随机数质量直接影响用户体验。

  
  

评论区

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