| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1171 人关注过本帖
标题:如何用最简单的方法显示出来
只看楼主 加入收藏
xwcj
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2011-9-8
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:14 
如何用最简单的方法显示出来
有四组数,每组有二个数字,每组取一个数,把它们组合成四位数,总共能组成多少组四位数,并显示出来。
例如四组数,AB,CD,EF,GH 它们任取一位可组成:ACEG或ADFH或DHEB等等
搜索更多相关主题的帖子: 如何 
2011-11-07 15:20
panpende
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:528
专家分:963
注 册:2009-4-27
收藏
得分:0 
这道题好像是8个元素选4个元素选排列。8!/(8-4)!=1680
2011-11-08 07:52
apple0072011
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:249
专家分:989
注 册:2011-8-17
收藏
得分:0 
请楼主首先明确一个问题:“有四组数,每组有二个数字”这八个数字是否重复,例如第一组数据是AB,是否意味着以后的数据中不包含A和B

天道酬勤
2011-11-08 16:10
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:0 
2*2*2*2种组合,可以用多重循环.

★★★★★为人民服务★★★★★
2011-11-08 16:20
panpende
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:528
专家分:963
注 册:2009-4-27
收藏
得分:0 
“有四组数,每组有二个数字”这八个数字是否重复

其实解决这道题,无所谓是否重复。即可以重复,也可以不重复。方法是一样的。因为可以把A-H看作是变量。
2011-11-09 08:29
panpende
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:528
专家分:963
注 册:2009-4-27
收藏
得分:0 
一种另类的方法,仅供参考:

CREATE DBF LB (A1 C(4)) &&建立表
FOR X=1234 TO 8765
Y=STR(X,4)
*去除0,9
IF '0'$Y .OR. '9'$Y
LOOP
ENDIF
*去除重复
IF OCCURS('1',Y)>1 .OR. OCCURS('2',Y)>1 .OR. OCCURS('3',Y)>1 .OR. OCCURS('4',Y)>1 .OR. OCCURS('5',Y)>1 .OR. OCCURS('6',Y)>1 .OR. OCCURS('7',Y)>1 .OR. OCCURS('8',Y)>1
LOOP
ENDIF
APPEND BLANK
REPLACE A1 WITH Y
REPLACE A1 WITH STRTRAN(A1,'1','A')
REPLACE A1 WITH STRTRAN(A1,'2','B')
REPLACE A1 WITH STRTRAN(A1,'3','C')
REPLACE A1 WITH STRTRAN(A1,'4','D')
REPLACE A1 WITH STRTRAN(A1,'5','E')
REPLACE A1 WITH STRTRAN(A1,'6','F')
REPLACE A1 WITH STRTRAN(A1,'7','G')
REPLACE A1 WITH STRTRAN(A1,'8','H')
ENDFOR
BROWSE
2011-11-09 09:07
apple0072011
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:249
专家分:989
注 册:2011-8-17
收藏
得分:0 
呵呵

[ 本帖最后由 apple0072011 于 2011-11-9 10:55 编辑 ]

天道酬勤
2011-11-09 10:49
茵梦湖
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:31
帖 子:545
专家分:2180
注 册:2009-4-25
收藏
得分:0 

楼方提问题, 意思表达混乱~

按第1段的说明:“有四组数,每组有二个数字,每组取一个数,把它们组合成四位数”,这是一种典型的全“排列”说法~ 也就是4楼的说的那个意思~   足球彩票, 6+1传统型彩票 都是这个意思~

而第2段给出的示例:“例如四组数,AB,CD,EF,GH 它们任取一位可组成:ACEG或ADFH或DHEB等等”,这却是“组合”的示例, 类似"m选n"~  乐透型彩票, 双色球 就是这个意思 ~

排列和组合 是完全不同的概念,你自己提问题都这么不认真,有矛盾, 还希望解答的人怎么样? 其实,无论是排列或组合,代码都很简单,排列6句代码即可~ 组合5句代码即可~ 这个坛子也都有优化解答~







[ 本帖最后由 茵梦湖 于 2011-11-9 13:03 编辑 ]
2011-11-09 12:56
panpende
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:528
专家分:963
注 册:2009-4-27
收藏
得分:0 
对题意理解有误,因此‘这道题好像是8个元素选4个元素选排列。8!/(8-4)!=1680 ’的判断错误。并且程序及结果有误。
2011-11-10 07:31
panpende
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:528
专家分:963
注 册:2009-4-27
收藏
得分:20 
修改后的程序如下,共384组。仅供参考
*有四组数,每组有二个数字,每组取一个数,把它们组合成四位数,总共能组成多少组四位数,并显示出来。
CREATE DBF LB (A1 C(4)) &&建立表
FOR X=1234 TO 8765
Y=STR(X,4)
*去除0,9
IF '0'$Y .OR. '9'$Y
LOOP
ENDIF
*去除重复
IF OCCURS('1',Y)>1 .OR. OCCURS('2',Y)>1 .OR. OCCURS('3',Y)>1 .OR. OCCURS('4',Y)>1 .OR. OCCURS('5',Y)>1 .OR. OCCURS('6',Y)>1 .OR. OCCURS('7',Y)>1 .OR. OCCURS('8',Y)>1
LOOP
ENDIF
*每组取一个数
IF ('1'$Y .AND. '2'$Y) .OR. ('3'$Y .AND. '4'$Y) .OR. ('5'$Y .AND. '6'$Y) .OR. ('7'$Y .AND. '8'$Y)  
LOOP
ENDIF
APPEND BLANK
REPLACE A1 WITH Y
REPLACE A1 WITH STRTRAN(A1,'1','A')
REPLACE A1 WITH STRTRAN(A1,'2','B')
REPLACE A1 WITH STRTRAN(A1,'3','C')
REPLACE A1 WITH STRTRAN(A1,'4','D')
REPLACE A1 WITH STRTRAN(A1,'5','E')
REPLACE A1 WITH STRTRAN(A1,'6','F')
REPLACE A1 WITH STRTRAN(A1,'7','G')
REPLACE A1 WITH STRTRAN(A1,'8','H')
ENDFOR
BROWSE

2011-11-10 08:02
快速回复:如何用最简单的方法显示出来
数据加载中...
 
   



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

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