package cn.LanQiaoBeiAlgorithm.Ravanla;
/**
* 在n个球中,任意取出m个(不放回),求共有多少种取法
* @author Ravanlala
*
*/
public class Get_m_Balls_From_n_Balls {
public static void main(String[] args) {
int k = f(4, 2);
System.out.println(k);
}
private static int f(int n, int m) {
if(n < m) return 0;//取球数大于有球数时
if(n == m) return 1;//取球数和有球数一样时
if(m == 0) return 1;//取0个球的时候
return f(n - 1, m - 1) + f(n - 1, m);
/**
* 假设我有A B C三个球,要取两个
* 我所有的取法都包含了在这两种情况
* 第一种是必须取走A ,这样的话就要先取A再取数(有A的一堆) f(n - 1, m);
* 第二种是不取A 这样的话就要先排除A再取数 (没有A的一堆) f(n, m)
*
*/
}
}
经典递归问题--n个球中取m个(不放回)Get_mBalls_From_nBalls_NotBack--Java实现
本文介绍了一个简单的递归算法,用于计算从n个不同元素中选取m个元素的组合数。通过递归的方式,将问题分解为更小的子问题来解决。

被折叠的 条评论
为什么被折叠?



