需求:乙個模型中有n個狀態,每個狀態有m個選項,如果從每個狀態中選取乙個選項進行組合,總共有多少種組合。
1.state類
public class state
public state()
public string getname()
public void setname(string mname)
public void addselection(string selection)
public string getselection(int index)
public int selectionnum()
public listgetselections()
}
2組合類,cmn
public class cmn
private void addstate(state state)
/*** 計算組合
*/public void cmn()
/**儲存組合結果*/
listmpxstates = new arraylist();
/*** 遞迴尋找組合序列
* @param state
* @param index
*/public void cmn(state state,int index)else
} }
public void printstate(liststates)
system.out.println();
} }}
3 main
public class main
}
排列與組合的Java遞迴實現
我們在筆試面試過程中經常會遇到關於排列與組合的問題,其實這些可以通過遞迴簡單的實現,看下面兩個例子 1 關於字串排列的問題 輸入乙個字串,列印出該字串中字元的所有排列。例如輸入字串 abc,則輸出由字元a b c所能排列出來的所有字串 abc acb bac bca cab和 cba。可以這樣想 固...
(演算法)組合的遞迴演算法Java實現過程
對於無重複項的組合問題的遞迴思路可從以下幾個步驟入手 以陣列為例,如對其他元素排列,將元素編號放入陣列即可 以陣列a 5 為例,用c 5,num 表示從這5個數中選擇num個數,求其所有的情況。首先要明確,求一組數的組合問題,元素是沒有位置要求的,即對於c 5,3 的求解和是一種情況。因此,為了防止...
java實現遞迴
遞迴,簡單的理解就是自己呼叫自己 主要分為兩部分,遞迴頭,遞迴的結束條件 遞迴體,自己呼叫自己的過程 1 最常見的就是階乘,比如求5的階乘,數學公式就是 5 4 3 2 1,public class digui else public static void main string args 2 求...