| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2572 人关注过本帖
标题:怎么样动态确定循环嵌套的层数
只看楼主 加入收藏
zfc123
Rank: 2
等 级:论坛游民
帖 子:136
专家分:39
注 册:2007-5-4
收藏
得分:0 
谢谢,上面的例子,是我为说明问题临时写的,不一定对,只为说明问题,非常感谢版主的热心帮助,也希望我的问题能够在此得以解决。
2008-02-27 17:58
zfc123
Rank: 2
等 级:论坛游民
帖 子:136
专家分:39
注 册:2007-5-4
收藏
得分:0 
4000   -3000   2000
3000   -1000   1000
8000   -7000   3000
可能是我的思路有问题,我把我的问题再描述一下,看能不能帮我想想办法,由于不能贴图,就把上面数据当成一个表格,其中每一行是一条记录,是程序运行时可以添加删除的,每一条记录有3个不同的值,每个记录的3个值是可以任意组合的,比如:4000,3000,8000  4000,-1000,-7000  4000,-1000,3000.....
我想要得到他们所有的组合,但问题是行数是不固定的。如果固定可以按我前面的思路去做,现在看来,要实现很难,请问版主这个问题有没有别的解法。谢谢
2008-02-28 10:17
哈蒂5622
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2008-3-2
收藏
得分:0 
按你上面的例子若abc 数量未知那么 他们各自的 0 1 2的具体取值也是未知 呃~
2008-03-02 12:41
ioriliao
Rank: 7Rank: 7Rank: 7
来 自:广东
等 级:贵宾
威 望:32
帖 子:2829
专家分:647
注 册:2006-11-30
收藏
得分:0 
如果我没有理解错你的题目可以有以下思路

行数是不固定的,但可以求得的是不?那么定义行数为r
,列数有3例.那么你表中总共有r*3个数据.
那么就可以将这r*3个数据进行组合.

/images/2011/147787/2011051411021524.jpg" border="0" />
2008-03-02 13:33
slore
Rank: 5Rank: 5
等 级:贵宾
威 望:16
帖 子:1108
专家分:0
注 册:2005-7-1
收藏
得分:0 
只能说可以实现。(写过,但是现在不能给你提供完整的代码)

给你思路。。。

当时有个全排列的求助,就尝试写过了。
朋友给了我一份,我自己写了种2个循环代替多个循环的嵌套。
写出来自己当时超高兴。。。可惜太早了,现在用的这个是
别人的电脑。自己的电脑废了,找不到了。

Private Sub Command1_Click()
   
Dim i As Integer
    Dim
j As Integer
    Dim
k As Integer
    For
i = 1 To 3
        For j = 1 To 3
            For k = 1 To 3
                Print i & j & k
            Next
        Next
    Next
End Sub

Private Sub
Command2_Click()
   
Dim i As Integer
    Dim
j As Integer
    Dim
k As Integer
    Dim
m As Integer
    Dim
ij(9) As Integer
    For
i = 1 To 3
        For j = 1 To 3
            ij((i - 1) * 3 + j) = i & j
        Next
    Next

    For
k = 1 To 3
        For m = 1 To 3 * 3
            Print k & ij(m)
        
Next
    Next

End Sub

'现在表述不清楚了。
'大概意思就是3个循环的话,
'先前2个循环产生ij的结果。

'再将ij结果和第3层循环,得到全排列结果。
'如果你4个FOR嵌套输出全部的状态
'将上面第2部分的 k & ij(m) 变成赋值
' ijk(3*3*3)= ij(m) & k

'然后和第4层做个2重循环。
'For k = 1 To 3
'   For m = 1 To 3 * 3 * 3  '只有这里变化了。
'     Print k & ijk(m)
'   Next
'Next

'有点像乘法3个数相乘2个先乘在乘另一个。

'先前2个循环得到结果,这个结果和下一个循环
'进行2重循环,得到前3重循环的结果

'再和第4层进行2重循环。。。

'前n层的结果在和n+1层进行循环……

'就是将n重嵌套循环变成一层层循环进去。。。
'这样就可以写成sub调用,改变的是那个3*3*3的那个部分。。

'具体自己研究下吧,现在已经变的好懒了不想再写边了。

'我朋友给我的是另一种代码,哎~都没有了。
'那个方法的思路我都还没有理清。。。

快上课了……
2008-03-02 14:55
zfc123
Rank: 2
等 级:论坛游民
帖 子:136
专家分:39
注 册:2007-5-4
收藏
得分:0 
谢谢,我先试试,不懂再问
2008-03-04 20:46
快速回复:怎么样动态确定循环嵌套的层数
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012658 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved