CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
(图)邪恶的韩国UMPC 使用 Java 编写数据库应用新规范
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C++ Builder >  基础类

可重复的全排列问题

楼主lucho(lucho)2006-12-01 17:54:01 在 C++ Builder / 基础类 提问

我有一个可重复的全排列,比如说7位字母的数量就是26的7次方。占用巨大的内存。问有什么方法可以分解一下。我用先组合后排列的方式分解也不行,因为组合后的可重复全排列个数很难得出,请教各位大虾有什么高招,我高分相送。 问题点数:35、回复次数:4Top

1 楼spirit_sheng(老盛)回复于 2006-12-01 18:11:59 得分 35

void   Full(int   *   base,   int   basesize,   int   count)  
  {  
   
  int   *   visit   =   new   int[count];  
  int   i;  
  for(i=0;i<count;i++)visit[i]=0;  
   
  while(1){  
    for(i=0;i<count;i++)printf("%d   ",base[visit[i]]);      
    printf("\n");  
   
    for(i=count-1;i>=0;i--){if(visit[i]==basesize-1)visit[i]=0;else   break;}  
    if(i<0)break;//Finished  
    visit[i]++;  
  }  
  delete   []   visit;  
  }  
   
  int   main(int   argc,   char*   argv[])  
  {  
  int   a[]={2,   5,   6};  
  Full(a,   3,   2);  
  return   0;  
  }Top

2 楼spirit_sheng(老盛)回复于 2006-12-01 18:12:34 得分 0

上面是直接回溯,   不用保存Top

3 楼leonatcs(LeonKennedy)(时常逛一逛csdn,有益身心健康。)回复于 2006-12-01 23:38:12 得分 0

楼主的性欲真低。Top

4 楼lucho(lucho)回复于 2006-12-02 13:39:12 得分 0

“上面是直接回溯,   不用保存”  
   
  但是我怎么可以拿过来一条一条用,还是要保存一下啊。Top

相关问题

关键词

得分解答快速导航

  • 帖主:lucho
  • spirit_sheng

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
惹火投票。。火热进行中...
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo