排列组合问题

来源:互联网 发布:如何评价毛泽东 知乎 编辑:程序博客网 时间:2024/05/17 08:19

排列组合问题:

从m个数里选择n个数,问有多少个组合,并枚举?

如从[1,2,3,4,5]选择3个数:

[1,2,3],[1,2,4],[1,2,5],[2,3,4]...

数学方法:

排列组合公式:


 
枚举代码如下:
  
#include<stdio.h>void print(int *p,int n){     int i=0;     for(i=0;i<n;i++){          printf("%d",p[i]);     }     printf("\n");}void next (int *p,int r,int n){      int i,j,k=0;     for(i=n-1,j=0;i>=0;i--,j++){          if(p[ i ]<r-j){               p[ i++ ]++;               for(k=i;k<j+i;k++){                    p[k]=p[k-1]+1;             }               print(p,n);               next(p,r,n);               break;                        }     }}  void main(){     int p[]={1,2,3,4,5};//storage space for 5 member     next(p,9,5); //from 9 member select 5 member}


0 0