| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 439 人关注过本帖
标题:求证组合排列程序是否正确
只看楼主 加入收藏
whinda
Rank: 6Rank: 6
等 级:贵宾
威 望:13
帖 子:263
专家分:418
注 册:2012-2-4
结帖率:70%
收藏
已结贴  问题点数:20 回复次数:14 
求证组合排列程序是否正确
近期写个对账小程序,应收款数笔,实际回款数笔。
思路是由账面应收款序列,生成所有组合,和实际收款的数据序列生成的组合,进行比对。
先写了个验证小程序,统计学上课没听,害怕有误,请大师指点下。
程序代码:
genComb(1,0,'',10)&&10以内的非重复全部组合

Procedure genComb
    Lparameters startIndex,nSum,cStrCombination,nLen
    LOCAL i
    For i=startIndex To nLen
        Local nToal,cString
        cString=cStrCombination+','+Alltrim(Str(i))&&由哪几笔组成
        nTotal=nSum+i&&求和
        ?nTotal,cString
        If i=nlen
            RETURN
        Else
            genComb(i+1,nTotal,cString,nLen)
        Endif
    Endfor
Endproc
搜索更多相关主题的帖子: 组合 是否 LOCAL cString 排列 
前天 17:25
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10666
专家分:43285
注 册:2014-5-20
收藏
得分:7 
用递归,算量大时可能会出异常。
前天 17:35
whinda
Rank: 6Rank: 6
等 级:贵宾
威 望:13
帖 子:263
专家分:418
注 册:2012-2-4
收藏
得分:0 
10个数,不重复全部组合序列有多少个,不会计算。程序跑出来是1023,不知道是否正确
前天 17:35
whinda
Rank: 6Rank: 6
等 级:贵宾
威 望:13
帖 子:263
专家分:418
注 册:2012-2-4
收藏
得分:0 
通常也就20笔以内,想到可以128层嵌套,就用了递归
前天 17:37
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10666
专家分:43285
注 册:2014-5-20
收藏
得分:0 
有无可能会是20个数任意1个、2个、3个.......19个、20个数的组合
前天 18:59
sych
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:7
帖 子:384
专家分:634
注 册:2019-10-11
收藏
得分:7 
可以通过控制excel,利用线性规划求解,速度快
前天 19:36
whinda
Rank: 6Rank: 6
等 级:贵宾
威 望:13
帖 子:263
专家分:418
注 册:2012-2-4
收藏
得分:0 
回复 5楼 吹水佬
现在就是生成序列N的1、2、3...N的组合,而且不重复。用小一点的数代入N,目前测得结果好像是对的。就是怕逻辑上有缺陷。
昨天 00:59
whinda
Rank: 6Rank: 6
等 级:贵宾
威 望:13
帖 子:263
专家分:418
注 册:2012-2-4
收藏
得分:0 
只是验证,实际操作会把应收数序列存入数组,通过数组下标来访问,实现组合
昨天 01:03
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10666
专家分:43285
注 册:2014-5-20
收藏
得分:0 
以下是引用whinda在2025-8-28 00:59:42的发言:

现在就是生成序列N的1、2、3...N的组合,而且不重复。用小一点的数代入N,目前测得结果好像是对的。就是怕逻辑上有缺陷。

为节省时间,方便的话最好给点数据测试一下
昨天 05:31
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10666
专家分:43285
注 册:2014-5-20
收藏
得分:0 
以下是引用whinda在2025-8-27 17:37:13的发言:

通常也就20笔以内,想到可以128层嵌套,就用了递归

如果有其他算法,最好不要用递归,一来不好读懂,二来也不见得高效,尤其是vfp这类解释语言,循环的嵌套层次尽量要少。
昨天 06:52
快速回复:求证组合排列程序是否正确
数据加载中...
 
   



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

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.034729 second(s), 10 queries.
Copyright©2004-2025, BC-CN.NET, All Rights Reserved