以下是一个用C++语言编写的程序,可以得到有四个小球,有放回的抽取18次的所有结果:

#include <iostream>
#include <vector>

using namespace std;

// 递归函数,用于生成所有可能的抽取结果
void generateCombinations(vector<int>& balls, vector<int>& combination, int numBalls, int numDraws) {
    // 如果已经抽取了指定次数,输出当前结果
    if (combination.size() == numDraws) {
        for (int ball : combination) {
            cout << ball << " ";
        }
        cout << endl;
        return;
    }

    // 递归尝试每个小球
    for (int i = 0; i < numBalls; i++) {
        combination.push_back(balls[i]);
        generateCombinations(balls, combination, numBalls, numDraws);
        combination.pop_back();
    }
}

int main() {
    int numBalls = 4; // 小球的数量
    int numDraws = 18; // 抽取的次数

    vector<int> balls(numBalls);
    for (int i = 0; i < numBalls; i++) {
        balls[i] = i + 1;
    }

    vector<int> combination;
    generateCombinations(balls, combination, numBalls, numDraws);

    return 0;
}

运行上述程序将输出所有的抽取结果。

注意:由于抽取是有放回的,所以可能会出现重复的结果

用C++语言得到有四个小球有放回的抽取18次的所有结果

原文地址: https://www.cveoy.top/t/topic/hBN3 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录