首页 > 学院 > 开发设计 > 正文

可重复排列组合算法

2019-11-10 18:17:16
字体:
来源:转载
供稿:网友
void permutation(char s[], char u[], char o[], int n, int m, int p) {      int i;      if ( p == m ) /*达到所选则的数目*/     {           for ( i = 0; i < m; i++ )               PRintf("%c",o[i]);           printf("/n");      }      else      {          for ( i = 0; i < n; i++ )          {              if ( u[i]!=m ) /*如当前元素为达到使用次数即m次*/             {                   u[i] += 1; o[p] = s[i];                   permutation(s,u,o,n,m,p+1);                   u[i] -= 1;              }          }      } }int main(){    char s[] = "ABCDE";/*原集合数据*/    char o[5];     /*用于输出的*/    char u[5] = {0}; /*用来标记当前元素所使用的次数*/    permutation(s,u,o,4,3,0);/*以4取3的排列为例*/         system("PAUSE");    return 0;}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表