标题:[求助]复杂算法问题
取消只看楼主
freeman8138
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2007-9-13
 问题点数:0 回复次数:0 
[求助]复杂算法问题
现有N组18码,能否利用编程实现将N组18码里筛选出同时成立M=?,P=?的数据出来,N的范围在250以内,M的范围在100以内,P的范围在0-5。

如有10组18码:(一共为10组,所以N=10)

04 06 07 09 10 12 15 16 18 19 23 24 26 29 30 31 32 34
04 06 07 09 10 12 16 17 18 19 21 23 24 26 28 29 30 32
02 04 05 06 12 14 15 18 19 20 22 24 25 26 28 30 31 32
01 02 04 06 08 09 10 11 12 13 15 16 17 18 19 20 21 22
01 04 06 08 09 11 14 16 18 19 21 22 24 26 28 29 31 34
02 04 06 07 10 11 13 15 16 18 20 21 23 24 26 28 31 33
01 04 07 09 11 12 15 16 18 20 21 23 25 27 29 30 32 33
01 02 04 05 07 08 10 11 12 13 15 18 20 21 23 24 28 29
02 03 04 05 06 08 10 12 14 16 20 21 23 24 25 28 31 34
01 02 03 06 07 09 10 13 14 15 17 18 21 24 28 30 32 33

有4组以下的条件是成立的,(所以M=4)

3=04 06 07 09 10 12 16 17 18 19 21 23 24 26 28 29 30 32,(表示这行18个号码里出了04、09、24这3个号码)
3=01 02 04 06 08 09 10 11 12 13 15 16 17 18 19 20 21 22,(表示这行18个号码里出了04、09、22这3个号码)
3=02 04 06 07 10 11 13 15 16 18 20 21 23 24 26 28 31 33,(表示这行18个号码里出了04、24、31这3个号码)
3=02 03 04 05 06 08 10 12 14 16 20 21 23 24 25 28 31 34,(表示这行18个号码里出了04、24、31这3个号码)

但在最后如果多一组

3=04 06 07 09 10 12 15 16 18 19 23 24 26 29 30 31 32 34,(表示这行18个号码里已经出了“4 9 22 24 31”中的04、09、24、31这4个号码,而条件只写作3=则不成立,应为4=)

3=的意思是=后面的18个码里只出3个。所以P=3(注意:是“只”出3个)

而这3个是指“4 9 22 24 31”这5个数里的其中3个。上面4组每1组18个号码里所出的3个号码都属于4 9 22 24 31这5个号码里的其中3个。所以对这5个数来说,上面的4组条件都是正确并且同时成立的。

实际上5个数字是未知值。上面的“4 9 22 24 31”我只是举个例子,可以是1-35个数里的任意5个。

如果同时满足M=某值,P=某值的时候,可能会筛选出很多种组合符合“1-35个数里的任意5个”。即比如说N=200,M=50,P=3时,是指200组18码里,有50组符合同时只出3个数的组合。而这3个数可能是“4 9 22 24 31”中的3个,也可能是“12 23 25 27 35”中的3个......

希望软件可以读入和保存txt数据,有P和M的下拉选框或输入框。最好只要设定M=某值,P=某值时,可以直接显示出符合条件的5个数,或者将符合条件的多个M组18码列出来

再简单的说可以认为是在N组18码里找出M组18码,而这M组18码的重号是5个,找重号。

[此贴子已经被作者于2007-9-25 17:17:05编辑过]

搜索更多相关主题的帖子: 算法 范围 数据 筛选出 
2007-09-25 17:15



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-172816-1-1.html




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

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