算法基礎1:在n球中任意取出m個不放回

問題:從n個球中取出m個球(不放回)
先上遞歸求法的代碼:

public class Demo1 {

	public static void main(String[] args) {
		int k = f(3,2);
		System.out.println(k);

	}

	private static int f(int i, int j) {	
		if(i<j) return 0;
		if(i==j) return 1;
		if (i==0) return 0;
		return f(i-1, j-1) + f(i-1, j);
	}

}

思路是:在n球中任意取出m個不放回,求有多少種取出球的方案
將取出的m個球中看成有一個特殊球,那麼就會有兩種可能
取出的m個球中包含這個特殊球 表達就是:n-1,m
不包含這個特殊球 n-1,m-1

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章