21xrx.com
2024-12-22 22:38:43 Sunday
登录
文章检索 我的文章 写文章
C++中生成随机数的方法
2023-07-08 15:53:43 深夜i     --     --
C++ 随机数 生成方法

C++是一种高级编程语言,其具备强大的计算能力和丰富的数据类型。在C++中,生成随机数是一项非常重要的功能,它可以用于模拟实验、加密等众多应用场景。本文将介绍C++中生成随机数的方法。

1. 使用rand()函数

rand()函数是C++中生成随机数的最基本方法。它可以生成一个0到RAND_MAX之间的整数随机数。这里需要注意的是,每一次运行程序rand()函数生成的序列都是不同的,因为生成的随机数序列是根据程序启动时的时间戳计算的。

使用rand函数的代码示例:


#include <iostream>

#include <cstdlib>

#include <ctime>

int main()

{

  std::srand(std::time(nullptr)); // use current time as seed for random generator

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

    std::cout << std::rand() << std::endl;

  }

  return 0;

}

2. 使用

C++11引入了新的随机数生成库 ,它提供了更多的随机数生成类型和更高的精度。基本上随机数的范围可以自己确定,但是需要指定一个生成引擎和分布类型,生成引擎有三种:linear_congruential_engine、mersenne_twister_engine和subtract_with_carry_engine,分布类型有uniform_int_distribution和uniform_real_distribution。

使用 库生成一个数字的代码示例:


#include <iostream>

#include <random>

int main()

{

  std::random_device rd; // obtain a random number from hardware

  std::mt19937 gen(rd()); // seed the generator

  std::uniform_int_distribution<> distr(1, 10); // define the range

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

    std::cout << distr(gen) << std::endl; // generate numbers from the defined range

  }

  return 0;

}

总结

本文介绍了C++中生成随机数的两种方法,即使用rand()函数和 库。对于大多数应用程序来说,rand()函数已经足够了。但是,在需要更高精度的应用程序中,使用 库可以为我们提供更多的选项和更高的精度。

  
  

评论区

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