您的位置:首页 > 其它

蓝桥杯常用算法知识点:【递归】m个A与n个B的全排列个数

2016-03-16 21:12 323 查看
m个A与n个B的全排列个数

package com.aiqiongdiao;
public class Main {
public static int g(int m,int n){
if(m==0||n==0){    //出口:不断降,总会为0
return 1;   //为一种情况,m与n之间没有大小约束
}
return g(m-1,n)+g(m,n-1);
}

public static void main(String[] args) {
System.out.println(g(3,2));
}
}


要去n个球中取m区分开来!!也要与n个元素的全排列区分开!

【n个球中取m个】的区别:

1.n个球题中 return f(n-1,m-1) + f(n-1,m); 是模拟出一个不存在的红球,取不取红球端对n都有影响

2.n个球题中 m与n之间有数量的关系,
n不能小于m, n==m时返回一种情况(一样存在m减到0)

【n个元素的全排列】的区别:

1.n个元素题中 元素很多,而此题只有2个,元素很多的情况下,只要移动一次就是一种情况

2.n个元素题中 使用的是指定头个元素与第k个元素交换位置。
元素要求:一个循环+一个k指标

for中: f(data,k+1);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: