组合算法

fastgun 2009-01-12 11:19:27
m行n列数据进行列与列之间的组合,即标准的组合c(m,n)算法,条件:m、n不固定
如a{1,2,5}, b{2,9} ,求a、b之间数字的各种组合

因为m、n不确定,所以无法用for...next循环,求递归或其他算法(非全排列),谢谢

...全文
125 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
xrongzhen 2009-01-12
  • 打赏
  • 举报
回复
不明白你的意思,m n不确定,那你怎么进行组合,连有几个数都不知道
fastgun 2009-01-12
  • 打赏
  • 举报
回复
m行n列,或者理解为m个数组,每个数组长度不同
YUYAO2 2009-01-12
  • 打赏
  • 举报
回复
m、n不确定?
什么意思?
fastgun 2009-01-12
  • 打赏
  • 举报
回复
m、n是不确定的,a、b是我举的例子,这种我会写

因为m、n不确定,所以无法用for...next循环,求递归或其他算法(非全排列)
YUYAO2 2009-01-12
  • 打赏
  • 举报
回复

dim i as integer
dim j as integer
for i=0 to ubound(a)
for j=0 to ubound(b)
debug.print a(i) & "*" & b(j)
next
next
fastgun 2009-01-12
  • 打赏
  • 举报
回复
问题解决了!

引用 10 楼 vbman2003 的回复:
http://topic.csdn.net/u/20090112/09/1a530382-9274-460c-b929-79c9ace742c4.html
您的算法应该更适合一个数组的N个元素间的组合,不过算法值得学习,我可以用到其他地方。
fastgun 2009-01-12
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 vbman2003 的回复:]
http://topic.csdn.net/u/20090112/09/1a530382-9274-460c-b929-79c9ace742c4.html
[/Quote]

看过您的代码了,学习了!谢谢

我要实现m个数组是不等长的数组,在网上看到一个C语言的代码比较适合我用,综合您的算法,应该能解决前面的问题了!
fastgun 2009-01-12
  • 打赏
  • 举报
回复
前面我说了“m行n列数据进行列与列之间的组合,即标准的组合c(m,n)算法”

脑子不好用就不要说那么多费话!
of123 2009-01-12
  • 打赏
  • 举报
回复

呵呵,看来脑子没有 gun 那么 fast。

m、n 不确定,只能说不是常数。不至于计算的时间还没有确定吧?你递归也总要有出口条件吧?

把 For...Next 的条件写成变量即可。(记住,任何递归结构都可以转化成 For...Next 结构)
fastgun 2009-01-12
  • 打赏
  • 举报
回复
我要解决的问题比较复杂,数量都是自定义的,所以数组数量m无法确定,每个数组的长度也可能不一样,此条件可以忽略(我自己能解决)。

现在要大家帮助是将m个数组进行组合(不排序)得到各种组合的算法。
fastgun 2009-01-12
  • 打赏
  • 举报
回复
m个数组不确定是说可能是2个,也可能是5个,具体数值要根据输入设置。
fastgun 2009-01-12
  • 打赏
  • 举报
回复
如a{1,2,5}, b{2,9},c{1,8,9,15,3}......

只求m个数组进行组合的通用算法
YUYAO2 2009-01-12
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 fastgun 的回复:]
m行n列,或者理解为m个数组,每个数组长度不同
[/Quote]
举个例子!

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧