Java 遞迴實現組合

2021-07-24 07:55:15 字數 885 閱讀 1975

需求:乙個模型中有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 求...