随机数据生成代码
查看原帖
随机数据生成代码
1086853
txp2024楼主2024/11/29 20:47

随机数据生成代码,可用于对拍

#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;
}
2024/11/29 20:47
加载中...