假设我的 list 是
{1,2,3,4}
我的标题可能描述性不够,但这是我想做的.. 我希望我的代码生成以下内容
{ (1,2) , (3,4) }
{ (1,3) , (2,4) }
{ (1,4) , (2,3) }
{ (2,1) , (4,3) }
{ (3,1) , (4,2) }
{ (4,1) , (3,2) }
即我想要该组的所有 4C2 组合。
注意:这里最初的四个元素只是一个说明性数字。数字可能会变化到 8 或 10。
现在,我该如何为它编写代码(用 C 或 PHP)。
基本上,我想知道算法。不是全部。,即使是先发制人也足够好了。 我只是想不出有什么可以开始的。 请帮忙。 谢谢。
我想我没解释好;实际上我自己没有遇到问题。 我想要的是,假设我有 4 支球队,我想让每支球队与另一支球队比赛,那么我如何生成所有的固定装置。 在我上面的例子中;将 1、2、3、4 视为 4 个团队。和 {(1,2), (3,4)} 作为一组固定装置等。 我该怎么做呢。 因此我需要的是生成所有 NC2/(N/2) 组固定装置。 (本例中 N=4)
最佳答案
Basically, i want to know the algorithm. not the whole of it., even a headstart will be good enough.. I just cant think of anything to start from.
如果您想要抢先一步,Python 文档会显示用于实现组合函数的算法。将 range() 替换为普通的 for 循环,将 yield 替换为 printf,应该很容易将其转换为 C 或 PHP:http://docs.python.org/library/itertools.html#itertools.combinations
请注意一次取两个的四个事物的组合产生:(1, 2), (1, 3), (1, 4), (2, 3), (2, 4), ( 3、4)
。您的示例输出还包括每个的补码(即 (1, 2)
伴随着 (3, 4)
)。
关于php - 从列表中查找 double (具有两个元素)的所有组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8557680/