用C++语言得到有四个小球有放回的抽取18次的所有结果
以下是一个用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;
}
运行上述程序将输出所有的抽取结果。
注意:由于抽取是有放回的,所以可能会出现重复的结果
原文地址: https://www.cveoy.top/t/topic/hBN3 著作权归作者所有。请勿转载和采集!