CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  VB.NET

求算法:有M个非重复数字,穷举其中N(n<=m)个数字组合,将这些组合输出到一个列表。

楼主flyleo()2006-03-15 10:01:11 在 .NET技术 / VB.NET 提问

有M个非重复数字,穷举其中N(n<=m)个数字组合(不考虑排列),将这些组合输出到一个列表。 问题点数:50、回复次数:9Top

1 楼livode(啊水)回复于 2006-03-15 10:14:46 得分 0

用递归Top

2 楼flyleo()回复于 2006-03-15 10:28:42 得分 0

兄弟,我是菜鸟,给个具体的吧Top

3 楼dilong_hcj(夏雨)回复于 2006-03-15 10:57:48 得分 50

Private   Sub   Button2_Click(ByVal   sender   As   System.Object,   ByVal   e   As   System.EventArgs)   Handles   Button2.Click  
                  Dim   str   As   String()  
                  str   =   getGroup("56455",   5)  
   
          End   Sub  
          Private   Function   getGroup(ByVal   str   As   String,   ByVal   Count   As   Integer)   As   String()  
                  Dim   ch   As   Char()  
                  ch   =   CType(str,   Char())  
                  'Return   ch  
                  Dim   i   As   Integer  
                  Dim   strGroup   As   String()  
                  getGroupStr(ch,   Count,   strGroup)  
                  Return   strGroup  
          End   Function  
          Function   getGroupStr(ByVal   ch   As   Char(),   ByVal   count   As   Integer,   ByRef   rtnStr   As   String())  
                  Dim   i,   j   As   Integer  
                  Dim   intUbound   As   Integer  
                  Dim   tmpStr   As   String()  
   
                  If   rtnStr   Is   Nothing   Then  
                          ReDim   tmpStr(UBound(ch))  
                          ReDim   rtnStr(0)  
                          rtnStr(0)   =   ""  
                  Else  
                          ReDim   Preserve   tmpStr(ch.Length   *   rtnStr.Length   -   1)  
                  End   If  
   
   
                  For   i   =   0   To   UBound(rtnStr)  
                          For   j   =   0   To   UBound(ch)  
                                  tmpStr(i   *   (ch.Length)   +   j)   =   rtnStr(i)   &   ch(j)  
                          Next  
                  Next  
   
                  ReDim   rtnStr(UBound(tmpStr))  
                  Array.Copy(tmpStr,   rtnStr,   tmpStr.Length)  
                  count   =   count   -   1  
                  If   count   =   0   Then  
                          Exit   Function  
                  Else  
                          getGroupStr(ch,   count,   rtnStr)  
                  End   If  
   
          End   FunctionTop

4 楼zhouxiaotan(夜雨悠扬)回复于 2006-03-15 12:34:34 得分 0

呵呵呵,楼上好规整的递归Top

5 楼zhengoodman(伤心小箭--甩一个人需要理由吗?)回复于 2006-03-15 13:18:29 得分 0

markTop

6 楼flyleo()回复于 2006-03-15 13:49:40 得分 0

比如说:  
  m=1   2   3   4  
  n=3  
  则结果应该为:  
  1   2   3  
  1   2   4  
  2   3   4Top

7 楼flyleo()回复于 2006-03-15 13:53:37 得分 0

麻烦   dilong_hcj(夏雨)   再改一下Top

8 楼flyleo()回复于 2006-03-15 13:54:36 得分 0

刚才写错了  
  比如说:  
  m=1   2   3   4  
  n=3  
  则结果应该为:  
  1   2   3  
  1   2   4  
  1   3   4  
  2   3   4  
  Top

9 楼dilong_hcj(夏雨)回复于 2006-03-17 09:40:39 得分 0

你先试着改   很简单的     如果实在不行我再帮你Top

相关问题

  • 【算法】从m个数中任取n个数的排列组合算法!
  • [一个算法问题]从m个数中任取n个数的组合
  • 遍历n个数中取m(<n)个数的任意组合,有没有什么好的方法?
  • 如何 穷举M个带编号的球(设编号为1-M)中的任意n个?
  • 考考基础:如何实现一个有关组合的穷举算法?
  • 求 从 N (可以有重复的数字)个数中取 M (N>=M)个数的所有排列组合 的算法?
  • 写出n个元素的所有组合,请帮忙!
  • 如何用PostMessage发送组合键如ctrl+m
  • n个球放a个不同篮子,排列组合的算法
  • ctrl键加上n键的组合键的ascii码是多少?

关键词

  • 数字
  • 穷举其中
  • 有m个非重复数字

得分解答快速导航

  • 帖主:flyleo
  • dilong_hcj

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

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