gpt4 book ai didi

c++ - 我如何打印 4 个不同的字母可以组合成 2 个字母对以填充四个点的所有方式,每个单独的字母恰好出现两次?

转载 作者:行者123 更新时间:2023-11-28 07:48:19 25 4
gpt4 key购买 nike

我目前的情况是这样的:

#include <iostream>
#include <algorithm>

using namespace std;

int main(){

string genePool[16] = {"aa", "ab", "ac", "ad", "ba", "bb", "bc", "bd", "ca", "cb",
"cc", "cd", "da", "db", "dc", "dd"};

string coco, code, deco, dede;

int total = 0;

for (int i = 0; i < 16; i++){
coco = genePool[i];
for (int j = 0; j < 15; j++){
code = genePool[j];
for (int k = 0; k < 14; k++){
code = genePool[k];
for (int l = 0; l < 13; l++){
code = genePool[l];

size_t a = count(coco.begin(), coco.end(), 'a') +
count(code.begin(), code.end(), 'a') +
count(deco.begin(), deco.end(), 'a') +
count(dede.begin(), dede.end(), 'a');
size_t b = count(coco.begin(), coco.end(), 'b') +
count(code.begin(), code.end(), 'b') +
count(deco.begin(), deco.end(), 'b') +
count(dede.begin(), dede.end(), 'b');
size_t c = count(coco.begin(), coco.end(), 'c') +
count(code.begin(), code.end(), 'c') +
count(deco.begin(), deco.end(), 'c') +
count(dede.begin(), dede.end(), 'c');
size_t d = count(coco.begin(), coco.end(), 'd') +
count(code.begin(), code.end(), 'd') +
count(deco.begin(), deco.end(), 'd') +
count(dede.begin(), dede.end(), 'd');

if (a = 2 || b = 2 || and c = 2 || d = 2){
total++;
cout << total << ") "coco << "," << code << "," << deco
<< "," << dede << endl;
}
}
}
}
}
return 0;
}

自从我用 C++ 完成任何事情以来已经有一段时间了,即使那时我也没有太深入,所以请原谅任何令人反感的明显错误。只要有人指出更好的地方,我就会尽职尽责地做得更好:)

最佳答案

那么,您想要一个 8 个字符的序列(4 个点 x 每个点 2 个字符),每个 4 个字符包含 2 个实例?

听起来您实际上想要 "aabbccdd" 的所有可能排列,因为您选择了所有 8 个字符。

因此,这将打印每个排列:

#include <string>
#include <algorithm>
#include <iostream>

void print_permutations(const char *source)
{
// current permutation
std::string s(source);
// this must start off sorted
std::sort(s.begin(), s.end());
do {
std::cout << s << '\n';
} while (std::next_permutation(s.begin(), s.end()));
}

// original gene pool
const char *pool = "aabbccdd";

int main()
{
print_permutations(pool);
}

这本质上就是例子 here .

如果这不是您想要的,也许您可​​以展示一些示例输出?

关于c++ - 我如何打印 4 个不同的字母可以组合成 2 个字母对以填充四个点的所有方式,每个单独的字母恰好出现两次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14393520/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com