21xrx.com
2024-11-22 06:45:32 Friday
登录
文章检索 我的文章 写文章
C++ 随机洗牌
2023-07-05 05:13:28 深夜i     --     --
C++ 随机 洗牌 数组 随机数生成器

在许多情况下,我们需要对一些数据进行随机排列,例如洗牌一组扑克牌、随机选取样本等。在 C++中,我们可以使用随机数生成器库来实现这一功能。

随机数生成器库提供了一个名为 rand() 的函数,该函数可以生成一个范围在0到RAND_MAX之间的随机整数。在使用 rand() 函数之前,需要使用 srand() 函数来初始化随机数生成器的种子。

下面是一个示例程序,演示如何使用 C++ 随机洗牌。


#include <iostream>

#include <cstdlib>

#include <ctime>

#include <vector>

#include <algorithm>

using namespace std;

int main()

{

  //初始化随机数生成器的种子

  srand((unsigned)time(NULL));

  //创建一组扑克牌

  vector<string> poker;

  poker.push_back("A");

  poker.push_back("2");

  poker.push_back("3");

  poker.push_back("4");

  poker.push_back("5");

  poker.push_back("6");

  poker.push_back("7");

  poker.push_back("8");

  poker.push_back("9");

  poker.push_back("10");

  poker.push_back("J");

  poker.push_back("Q");

  poker.push_back("K");

  //随机洗牌

  random_shuffle(poker.begin(), poker.end());

  //输出结果

  for(int i = 0; i < poker.size(); i++)

  {

    cout << poker[i] << " ";

  }

  cout << endl;

  return 0;

}

在上面的示例程序中,我们首先使用 srand() 函数将当前时间戳作为随机数生成器的种子,以确保每次运行程序时都能生成不同的随机数。然后,我们创建了一组扑克牌,使用 random_shuffle() 函数对其进行随机排列。最后,我们遍历已洗牌的牌组并输出结果。

总之,C++ 随机洗牌是利用随机数生成器库来实现的。这是一种快速有效的方法,可用于许多实际应用中。

  
  

评论区

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