2012-03-10 82 views
1

我有一组数字:从套所有可能的组合

1,22 
1,46 
32,1 
1,9 
32,22 
1,14 
1,45 
1,33 
33,22 
45,22 
32,46 
32,9 
3,1 
3,9 
3,22 
3,32 
3,46 
9,22 
46,22 
46,45 
46,33 
15,1 
15,46 
15,6 
15,22 
15,3 
15,9 
15,45 
15,33 
15,32 
15,14 

我需要与每一个新的对只能附加规则从他们那里得到的组合,如果后者的数量是一样的第一在一双。

例如,如果我有一对{15,1},下一个可以只有{1,46}和下一个{46,45},最后一对必须以整个第一个数字结束组。在这种情况下,它可能是例如{45,1}。

所以套,4套限制最终结果将是

{15,1,1,46,46,45,45,1} 

我可以做基本的发电机组,并生成一组数字的所有可能的组合,但是,这似乎是对我来说太先进。

我可以做C,Javascript或PHP所以所有的帮助或解决方案,这是高度赞赏。为了澄清,这不是一项家庭作业,这只是我想学习和理解的内容。

+0

可能你可以在这里找到 [这里] [1] [1]:http://stackoverflow.com/questions/3742506/php-array-combinations 感谢 – 2012-03-10 08:47:20

回答

0

这看起来好像某些图数据结构和一些图算法是合适的。你的图形将包括节点(每个节点是一个数字)和边缘(每个节点代表你的一对)。然后编写合适的例程在图表上走动。从你的问题来看,对于散步的规则是什么并不完全清楚,但我想你知道。

编辑

当然,我要指出,你有什么已经是一个图形数据结构,这就是所谓的邻接表。谷歌周围的算法和表示。

+0

这实际上是一个好主意。我会研究它,但我不确定它是否有助于我实际创建所有不同的组合。 – jimmy 2012-03-10 08:51:13

+0

如果您想要跟踪的所有路径必须以1结尾,那么从那里开始并向后工作。玩的开心。 – 2012-03-10 08:54:19