問題:從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