java中的数学排列组合思想

排列

从给定个数的元素中取出指定个数的元素进行排序。
计算公式:规定 0!=1
在这里插入图片描述在这里插入图片描述

组合

从给定个数的元素中,仅仅取出指定个数的元素,不考虑排序。
在这里插入图片描述
在这里插入图片描述

例题1:一道蓝桥杯题目

在这里插入图片描述
A(7,5)=2520
在这里插入图片描述

例题2:排列的题目

4种颜色按不同颜色,进行排列,有多少种排列方法,如果是6种颜色呢。从6种颜色中取出4种进行排列呢?
在这里插入图片描述

例题3:组合的题目

从4种颜色中,取出2种颜色,能形成多少种组合?
在这里插入图片描述

例题4:排队问题

六人按下列要求站一横排,分别有多少种不同的站法?  (1)甲不站两端;  (2)甲、乙必须相邻;  (3)甲、乙不相邻; (4)甲、乙之间间隔两人;  (5)甲、乙站在两端;  (6)甲不站左端,乙不站右端.在这里插入图片描述

例题5:全排列

public class Main {
public static void permutation(char[]ss,int i){  
        if(ss==null||i<0 ||i>=ss.length){//进行判空校验和验证下标不越界
            return;  
        }  
        if(i==ss.length-1){//2  
            System.out.println(new String(ss));  
        }else{  
            for(int j=i;j<ss.length;j++){//3  
                char temp=ss[j];//交换前缀,使之产生下一个前缀  
                ss[j]=ss[i];  
                ss[i]=temp;  
                permutation(ss,i+1);//4  
                temp=ss[j]; //将前缀换回来,继续做上一个的前缀排列.//5  
                ss[j]=ss[i];  
                ss[i]=temp;  
            }   
        }  
    }  
    public static void main(String args[]){
    	permutation(new char[]{'1','2','3'},0);
    }
}

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_44830627/article/details/105616480