[問題] 一個遞迴問題

看板C_Sharp (C#)作者 (小漁歌)時間13年前 (2012/02/19 23:26), 編輯推噓2(2013)
留言15則, 4人參與, 最新討論串1/3 (看更多)
今天在寫一個想破腦袋還是寫不出來 希望有神人可以幫幫我 以下是一個小例子 假設有三堆東西 每一堆裡面的東西都不一樣且數量也不同 例如第一堆有 蘋果 橘子     第二堆有 芭樂    第三堆有 西瓜 檸檬 (以上每堆中的水果都各一個) 然後我現在想做的事情就是從每一堆中選一個水果出來 也就是想要求出所有的組合 所以會有 蘋果 芭樂 西瓜      蘋果 芭樂 檸檬     橘子 芭樂 西瓜 橘子 芭樂 檸檬 這四種結果 這應該是遞迴的寫法吧? 但是實在很沒頭緒... 以下用簡單的語法舉例   希望有神人幫忙 int[,] allFruits; //↑放所有的水果,也就是每一堆的每一種水果,因為每一堆的數量不同 //所以有些位置會是空的,所以我就藉下面的那個變數來記錄每一堆有幾種水果 int[] numFruitsOfEachBasket;//記錄每一堆有多少種水果 int[] oneCombination; //size = 堆數 List<int[]> fruitsConbinations;//存放所有組合 C#新手感謝幫忙 ps.目前的問題堆數是固定的,但是每堆裡頭的水果種類會變 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.37.49

02/19 23:52, , 1F
如果只是要"組合" 應該不用算數量吧,只要算種類
02/19 23:52, 1F
※ 編輯: wildcupid 來自: 140.112.37.49 (02/20 00:11)

02/20 00:12, , 2F
我說的數量是每一堆的水果種類數量
02/20 00:12, 2F

02/20 00:13, , 3F
想說跑迴圈應時應該會需要知道每一堆有幾種水果
02/20 00:13, 3F

02/20 00:18, , 4F
第二句話是對的 第一句話怪怪的 水果的種類有幾種吧
02/20 00:18, 4F

02/20 00:19, , 5F
如果不用遞迴 用二層式的ArrayList就可以做到了
02/20 00:19, 5F

02/20 00:40, , 6F
最直覺的方法不就每堆一層迴圈就好?
02/20 00:40, 6F

02/20 00:41, , 7F
遞迴不會比較快也不會比較好寫吧?
02/20 00:41, 7F

02/20 05:34, , 8F
我有寫出來了 但是真的沒有比較好寫....
02/20 05:34, 8F

02/20 05:35, , 9F
不過如果是要做到動態的話 遞迴是必然的.
02/20 05:35, 9F

02/20 05:36, , 10F
我的方式是 你列有限堆數 把他畫成樹的圖形
02/20 05:36, 10F

02/20 05:36, , 11F
那就會有level(字母順序) 跟count(每階的種類)
02/20 05:36, 11F

02/20 05:37, , 12F
用這概念下去寫 從最頂層切進去 就好了
02/20 05:37, 12F

02/20 05:37, , 13F
如果要code的話 請寄信給我附上你的email
02/20 05:37, 13F

02/20 06:45, , 14F
或者直接看我dotblog>> http://ppt.cc/KI3Y
02/20 06:45, 14F

02/21 13:14, , 15F
高手好多!!!
02/21 13:14, 15F
※ 編輯: wildcupid 來自: 140.112.37.49 (02/21 13:15)
文章代碼(AID): #1FGHIKSr (C_Sharp)
文章代碼(AID): #1FGHIKSr (C_Sharp)