随机数据生成代码,可用于对拍
#include <iostream>
#include <vector>
#include <cstdlib>
#include <ctime>
using namespace std;
// 随机数生成工具函数
int randInt(int low, int high) {
return low + rand() % (high - low + 1);
}
int main() {
//freopen("input.txt", "w", stdout);
srand(time(0)); // 随机种子
// 设置随机 t 的范围
int t = randInt(1, 20); // t 介于 11 到 19
cout << t << endl;
while (t--) {
// 随机生成 n
int n = randInt(2, 50); // 设置人数范围为 2 到 20
cout << n << endl;
// 随机生成每个人是否有床位和是否留校
vector<int> hasBed(n); // 是否有床位
vector<int> staySchool(n); // 是否留校
for (int i = 0; i < n; ++i) {
hasBed[i] = randInt(0, 1);
staySchool[i] = randInt(0, 1);
//cout << hasBed[i] << " " << staySchool[i] << endl;
}
for (size_t i = 0; i < n; i++)
{
cout << hasBed[i] << " ";
}
cout<<endl;
for (size_t i = 0; i < n; i++)
{
cout << staySchool[i] << " ";
}
cout<<endl;
vector< vector< int > > v(n, std::vector< int >(n, -1));
// 随机生成关系矩阵
for (int i = 0; i < n; ++i) {
for (int j = 0; j < n; ++j) {
// 自己与自己的关系为 1,其它关系随机生成 0 或 1
if (v[i][j] == -1)
{
v[i][j] =(i == j) ? 0 : randInt(0, 1);
v[j][i] = v[i][j];
}
}
}
for (int i = 0; i < n; ++i) {
for (int j = 0; j < n; ++j) {
cout << v[i][j] << ' ';
}
cout << endl;
}
}
return 0;
}