|
Hanyeguxing
银牌会员
正在学习中的菜鸟...
积分 1039
发帖 897
注册 2009-3-1 来自 在地狱中仰望天堂
状态 离线
|
『楼 主』:
[已结]对变量进行组合显示的问题
说明:要求讨论组合的可能情况,而不是排列的情况!
例如 set hanye=寒 夜 孤 星,那么变量中这四个字,每个字与其他字组合,不限制组合的字数(即可以单字)有多少种组合呢?
要求输出如下效果:
寒
夜
孤
星
寒夜
寒孤
寒星
夜孤
夜星
孤星
寒夜孤
寒夜星
寒孤星
夜孤星
寒夜孤星
15种组合方法
请按任意键继续...
如何输出或显示出符合条件的情况呢?
[ Last edited by Hanyeguxing on 2009-7-5 at 09:07 ]
|
批处理之家 http://bbs.bathome.net/forum-5-1.html |
|
2009-7-4 13:34 |
|
|
moniuming
银牌会员
永远的菜鸟
积分 1335
发帖 574
注册 2007-11-27 来自 广西
状态 离线
|
|
2009-7-4 14:01 |
|
|
Hanyeguxing
银牌会员
正在学习中的菜鸟...
积分 1039
发帖 897
注册 2009-3-1 来自 在地狱中仰望天堂
状态 离线
|
『第
3 楼』:
折腾一晚上,竟然给我输出:
****** B A T C H R E C U R S I O N exceeds STACK limits ******
Recursion Count=495, Stack Usage=90 percent
****** B A T C H PROCESSING IS A B O R T E D ******
睡觉去了。。。
|
批处理之家 http://bbs.bathome.net/forum-5-1.html |
|
2009-7-4 17:59 |
|
|
netbenton
银牌会员
批处理编程迷
积分 1916
发帖 752
注册 2008-12-28 来自 广西
状态 离线
|
|
2009-7-5 03:24 |
|
|
Hanyeguxing
银牌会员
正在学习中的菜鸟...
积分 1039
发帖 897
注册 2009-3-1 来自 在地狱中仰望天堂
状态 离线
|
|
2009-7-5 03:50 |
|
|
Hanyeguxing
银牌会员
正在学习中的菜鸟...
积分 1039
发帖 897
注册 2009-3-1 来自 在地狱中仰望天堂
状态 离线
|
『第
6 楼』:
一般的想法,列出所有排列的可能,再过滤得到组合的情况。
按照我在1楼给出的要求,则可能的排列组合数:(n为变量中的字数)
对于组合:Σ(n)=2(n-1)+2(1)+2(2)+2(3)+......+2(n) 说明:本式中,()内的数值为 2 的指数。
即:Σ(n)=2(n)-1 说明:本式中,()内的数值为 2 的指数。
对于排列:Σ(n)=n+
n*(n-1)+
n*(n-1)*(n-2)+
n*(n-1)*(n-2)*(n-3)+
n*(n-1)*(n-2)*(n-3)*(n-4)+
n*(n-1)*(n-2)*(n-3)*(n-4)*(n-5)+
......
n*(n-1)*(n-2)*(n-3)*(n-4)*(n-5)*......*3+
n*(n-1)*(n-2)*(n-3)*(n-4)*(n-5)*......*3*2+
n*(n-1)*(n-2)*(n-3)*(n-4)*(n-5)*......*3*2*1
当只有四个汉字时,即 n=4 ,则排列数是 64 ,组合数是 15 ,随着 n 的增大,组合数成代数增长,而排列数则在成几何增长。
例如当 n=10 时,组合数是 1023 ,排列数为 9183700 ,这是一个近千万的天文数字。再从 9183700 种排列情况中过滤得到符合条件 1023 种组合的情况,是件很恐怖的事情。。。
于是,我有了这样一个想法,能不能不使用“先排列再过滤”的方法呢?
[ Last edited by Hanyeguxing on 2009-7-5 at 08:15 ]
|
批处理之家 http://bbs.bathome.net/forum-5-1.html |
|
2009-7-5 04:08 |
|
|
netbenton
银牌会员
批处理编程迷
积分 1916
发帖 752
注册 2008-12-28 来自 广西
状态 离线
|
|
2009-7-5 08:42 |
|
|
Hanyeguxing
银牌会员
正在学习中的菜鸟...
积分 1039
发帖 897
注册 2009-3-1 来自 在地狱中仰望天堂
状态 离线
|
|
2009-7-5 09:05 |
|