看板 C_Sharp 關於我們 聯絡資訊
今天在寫一個想破腦袋還是寫不出來 希望有神人可以幫幫我 以下是一個小例子 假設有三堆東西 每一堆裡面的東西都不一樣且數量也不同 例如第一堆有 蘋果 橘子     第二堆有 芭樂    第三堆有 西瓜 檸檬 (以上每堆中的水果都各一個) 然後我現在想做的事情就是從每一堆中選一個水果出來 也就是想要求出所有的組合 所以會有 蘋果 芭樂 西瓜      蘋果 芭樂 檸檬     橘子 芭樂 西瓜 橘子 芭樂 檸檬 這四種結果 這應該是遞迴的寫法吧? 但是實在很沒頭緒... 以下用簡單的語法舉例   希望有神人幫忙 int[,] allFruits; //↑放所有的水果,也就是每一堆的每一種水果,因為每一堆的數量不同 //所以有些位置會是空的,所以我就藉下面的那個變數來記錄每一堆有幾種水果 int[] numFruitsOfEachBasket;//記錄每一堆有多少種水果 int[] oneCombination; //size = 堆數 List<int[]> fruitsConbinations;//存放所有組合 C#新手感謝幫忙 ps.目前的問題堆數是固定的,但是每堆裡頭的水果種類會變 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.37.49
kinwind:如果只是要"組合" 應該不用算數量吧,只要算種類 02/19 23:52
※ 編輯: wildcupid 來自: 140.112.37.49 (02/20 00:11)
wildcupid:我說的數量是每一堆的水果種類數量 02/20 00:12
wildcupid:想說跑迴圈應時應該會需要知道每一堆有幾種水果 02/20 00:13
qwer820404:第二句話是對的 第一句話怪怪的 水果的種類有幾種吧 02/20 00:18
qwer820404:如果不用遞迴 用二層式的ArrayList就可以做到了 02/20 00:19
ssccg:最直覺的方法不就每堆一層迴圈就好? 02/20 00:40
ssccg:遞迴不會比較快也不會比較好寫吧? 02/20 00:41
qwer820404:我有寫出來了 但是真的沒有比較好寫.... 02/20 05:34
qwer820404:不過如果是要做到動態的話 遞迴是必然的. 02/20 05:35
qwer820404:我的方式是 你列有限堆數 把他畫成樹的圖形 02/20 05:36
qwer820404:那就會有level(字母順序) 跟count(每階的種類) 02/20 05:36
qwer820404:用這概念下去寫 從最頂層切進去 就好了 02/20 05:37
qwer820404:如果要code的話 請寄信給我附上你的email 02/20 05:37
qwer820404:或者直接看我dotblog>> http://ppt.cc/KI3Y 02/20 06:45
wildcupid:高手好多!!! 02/21 13:14
※ 編輯: wildcupid 來自: 140.112.37.49 (02/21 13:15)