2012-03-10 80 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