C++随机数生成(按照时间)——洗牌程序
时间: 2024-01-16 20:18:00 浏览: 126
洗牌算法(感觉有点用)
以下是一个使用C++编写的洗牌程序,它使用当前时间作为随机数种子来生成随机的排列:
```cpp
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
const int N = 1001;
int card[N];
int main() {
int n;
cin >> n;
for (int i = 0; i < n; i++)
cin >> card[i];
srand((unsigned)time(0)); // 设置随机数种子为当前时间
for (int i = n - 1; i >= 0; i--)
swap(card[i], card[rand() % (i + 1)]);
for (int i = 0; i < n; i++)
cout << card[i] << ' ';
return 0;
}
```
这个程序首先接受一个整数n作为输入,表示要洗牌的元素个数。然后,依次输入n个元素。接下来,程序使用`srand((unsigned)time(0))`来设置随机数种子,确保每次运行时生成的随机数不同。然后,程序使用Fisher-Yates算法对输入的元素进行洗牌,最后输出洗牌后的结果。
阅读全文