gpt4 book ai didi

c - 生成多组组合

转载 作者:行者123 更新时间:2023-11-30 19:45:15 25 4
gpt4 key购买 nike

我正在寻找一种非递归算法或 C 代码来生成多个集合的所有组合(不确定这是否是正确的科学名称)。例如:

我有 N=2 组符号:

set 1: [A, Y, Z]
set 2: [1, Q]

输出应该是:

A1
AQ
Y1
YQ
Z1
ZQ

N 可以变化,与特定集合中的符号数量相同。预先感谢您的任何帮助! :)

最佳答案

算法来自:How can I compute a Cartesian product iteratively?

我们可以创建一个长度为 n 的 int 数组,int[ ] Choose[n] 来跟踪我们在所有列表中选择了多少个元素。所有元素最初都设置为 0。

然后我们迭代一个存储所有这些数组的单链表。如果我们迭代了数组i中的一个元素,choose[i]++,将其附加到结果中。当 choice[i] == array i 的长度时,则中断并移至下一个数组。

但我不知道如何进行附加,因为每次我们迭代数组时,结果的大小都会扩展。

如果你已经弄清楚了,请告诉我。

关于c - 生成多组组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26735657/

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