21xrx.com
2024-09-20 00:48:13 Friday
登录
文章检索 我的文章 写文章
C++实现不重复随机数生成
2023-06-30 16:11:44 深夜i     --     --
C++ 随机数 不重复 生成

在编程语言中,随机数生成是一个很重要的功能,很多应用场景都需要用到随机数生成,例如游戏中的随机事件、加密算法等。在C++中,我们可以使用rand()函数来生成随机数,但是这个函数会生成重复的随机数,不太适合一些需要不重复的随机数的场景。那么,如何在C++中实现不重复的随机数生成呢?

一种实现方法是使用数组来存储已经生成的随机数,然后在生成新的随机数时检查数组中是否已经存在该数,避免生成重复的随机数。具体实现如下:


#include <iostream>

#include <ctime>

using namespace std;

int main() {

  const int ARR_SIZE = 10; // 数组大小

  int nums[ARR_SIZE] = {0}; // 存储已生成的随机数

  int num, count = 0;

  srand(time(NULL)); // 设置随机数种子

  while (count < ARR_SIZE) {

    num = rand() % 100 + 1; // 生成一个1-100之间的随机数

    bool isExist = false;

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

      if (nums[i] == num) // 若已经存在该数

    }

    if (!isExist) { // 若不存在,则存储该数

      nums[count++] = num;

    }

  }

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

    cout << nums[i] << " "; // 输出不重复的随机数序列

  }

  return 0;

}

此程序生成一个长度为10的随机数序列,每个随机数都是1-100之间的不重复的数字。当数组中的元素个数达到10个时,循环终止,输出存储在数组中的不重复的随机数序列。

总的来说,实现不重复的随机数生成主要是通过数组来存储已经生成的随机数,避免生成重复的随机数。需要注意的是,为了避免生成相同的随机数,程序需要判断是否已经存在该数,并在存储新的随机数时更新数组中的元素个数。

  
  

评论区

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