作者wildcupid (小漁歌)
看板C_Sharp
標題[問題] 遞迴求組合問題
時間Wed Mar 7 19:27:42 2012
各位前輩小弟不才又來求助了
之前有問過關於遞迴的一些問題
自己實作之後還是一直碰到問題
所以想再請版友們幫忙
我的問題如下:
假設現在有三個籃子,每個籃子前面有一些水果,水果只能放進它前面的籃子
,若籃子若籃子前面無水果,則以空籃子示之,求所有組合?
大概是長這樣子
籃子1
籃子2 芭樂 香蕉
籃子3 柳丁
所以答案應該是會出現以下的情形
空籃 芭樂 柳丁
空籃 香蕉 柳丁
我實作後碰到的其中一個問題就是當第一個籃子沒有任何水果時就GG了...
因為看了一些範例都是從第一個籃子去作切入點
我是有想了一個比較笨的方式去做判斷
就是去找到有水果的籃子去作切入點
可是還是有其他問題
我用符號舉例希望有人可以幫忙
List<int[]> combinations = new List<int[]>();
int[,] all = new int[3,3];
-1 -1 -1 -> 籃子0
all= 3 2 -1 -> 籃子1 (用這樣表示應該比較好理解,-1表示沒水果)
6 -1 -1 -> 籃子2
因次最後的結果應該是會出現
combinations[0] => [-1 3 6]
combinations[1] => [-1 2 6]
問題我再定義清楚一點
all裡面的元素每一回合都會不一樣,但是size是固定的(以這個例子來看就是3 by 3)
而當籃子前面都沒水果的位置則以-1表示
舉例:
-1 -1 -1 3 4 5 -1 -1 -1
EX1: 2 3 -1 EX2: -1 -1 -1 EX: 2 3 -1
0 -1 -1 2 6 -1 -1 -1 -1
希望版友可以幫忙,多謝多謝!!!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.37.49
※ 編輯: wildcupid 來自: 140.112.37.49 (03/07 19:28)
※ 編輯: wildcupid 來自: 140.112.37.49 (03/07 19:33)
→ wildcupid:好像寫出來了?不過如果有板友有其他寫法的話可以分享^^ 03/07 19:59
→ wildcupid:樓上高手我是參考你的下去改的~萬分感謝^^ 03/08 00:07