21xrx.com
2024-12-22 22:53:59 Sunday
登录
文章检索 我的文章 写文章
如何使用c++生成不重复的随机整数
2023-06-22 12:54:32 深夜i     --     --
C++ 随机整数 不重复

在c++中,使用随机数生成器可以生成不同的随机数。但是,如果需要生成不重复的随机整数,则需要进行一些额外的工作。

以下是在c++中使用随机数生成器生成不重复的随机整数的步骤:

1.包含必要的头文件

在c++中使用随机数生成器需要包含 。此外,如果您还想使用时间函数,例如srand()和time(),则需要包含

2.初始化随机数生成器

在生成随机数之前,需要使用srand()函数初始化随机数生成器。这可以通过给srand()函数传递唯一的种子来完成。种子可以是任意整数值,但是建议使用时间()函数来获取当前时间。

3.生成随机数

一旦随机数生成器已经成功地初始化,就可以使用rand()函数来生成随机数了。但是,为了生成不重复的随机整数,需要使用一些方法来保持跟踪以前生成的值。

4.使用一个容器

一个简单的解决方案是使用一个容器,例如std::set或std::unordered_set来存储以前生成的值。在生成每个随机数之前,都可以检查此容器中是否存在该值。如果存在,则需要重新生成。否则,将该值添加到集合中并返回它。

以下是生成不重复随机整数的示例代码:

#include

#include

#include

int main()

{

  std::set used_values;

  srand(time(NULL)); // initialize random number generator with current time

  for (int i = 0; i < 10; i++) // generate 10 random integers

  {

    int random_value;

    do {

      random_value = rand() % 100 + 1; // generate a random integer between 1 and 100

    } while (used_values.count(random_value)); // check if the value has already been generated

    used_values.insert(random_value); // add the value to the set of used values

    std::cout << random_value << " "; // print the generated value

  }

  return 0;

}

总的来说,生成不重复的随机整数需要一些额外的工作来保持跟踪以前生成的值。您可以使用容器或其他方法来实现这一点。无论您选择哪种方法,都可以通过以上步骤很轻松地在c++中生成不重复的随机整数。

  
  

评论区

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