📅  最后修改于: 2023-12-03 15:37:34.953000             🧑  作者: Mango
在 C++ 中,我们可以使用随机播放来随机排列一个序列。本文将介绍两种在 C++ 中实现随机播放的方法:使用 srand()
和 rand()
函数,以及使用 STL 中的 random_shuffle()
函数。
srand()
和 rand()
函数下面是一个使用 srand()
和 rand()
函数实现随机播放的示例代码:
#include <iostream>
#include <cstdlib> // 需要包含这个头文件
int main() {
// 使用 time 函数来生成一个不同的随机种子
srand(time(NULL));
// 要随机排列的数组
int arr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int n = sizeof(arr) / sizeof(arr[0]); // 数组的大小
// 用冒泡排序来模拟随机排列过程
for (int i = 0; i < n; ++i) {
for (int j = i + 1; j < n; ++j) {
if (rand() < rand()) { // 使用 rand() 函数来生成一个随机的布尔值
std::swap(arr[i], arr[j]);
}
}
}
// 输出随机排列后的数组
for (int i = 0; i < n; ++i) {
std::cout << arr[i] << " ";
}
std::cout << std::endl;
return 0;
}
使用 srand()
函数来设置随机种子,使得每次运行程序时生成的随机序列不同。使用 rand()
函数生成一个随机的布尔值,根据这个随机的布尔值来决定是否交换数组中两个位置的元素。在这个例子中,我们使用冒泡排序算法来模拟随机排列的过程。
random_shuffle()
函数STL 中的 random_shuffle()
函数可以更方便地实现随机播放。下面是一个使用 random_shuffle()
函数实现随机播放的示例代码:
#include <iostream>
#include <algorithm> // 需要包含这个头文件
#include <cstdlib> // 如果你使用的是 Windows,可以包含这个头文件来关闭编译器的警告
int main() {
// 要随机排列的数组
int arr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int n = sizeof(arr) / sizeof(arr[0]); // 数组的大小
// 使用 random_shuffle() 函数来随机排列数组
std::random_shuffle(arr, arr + n);
// 输出随机排列后的数组
for (int i = 0; i < n; ++i) {
std::cout << arr[i] << " ";
}
std::cout << std::endl;
return 0;
}
使用 random_shuffle()
函数可以更方便地实现随机播放。该函数接受两个迭代器参数,表示要随机排列的序列的区间。在本例中,我们传入了数组的起始地址和结束地址,从而随机排列了整个数组。
本文介绍了两种在 C++ 中实现随机播放的方法:使用 srand()
和 rand()
函数,以及使用 STL 中的 random_shuffle()
函数。两种方法都可以实现随机播放,但是使用 random_shuffle()
函数更方便,代码也更简洁。