排列组合,12选8的问题

lighao 2008-04-06 05:18:08

请问各位,我有一个这样的问题,1至12这12个数字,有一个无序的排列,大概有1万条数据。从中随机抽8个数字出来,看这8个数字最长连续出现多少次?把这8个数字找出来,并找出所在的位置。如何实现?
问题补充:比如从
4,12,5,8,11,1,9,3,12,3,5,10,10,1,1,2,1,12,3,10,5,6,7,1,11,7,9......
这些数据中,找出最长的8位数组合,连续最长出现多少次。
...全文
593 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
solo7773 2011-11-21
  • 打赏
  • 举报
回复
去这个帖子看看吧,不知道有相似度没有
http://topic.csdn.net/u/20111107/22/7dd012de-3541-4a9a-9505-e766a9ee6c9e.html
汪冯宝宝 2011-11-21
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 onlybluemoon 的回复:]
可以把这八个数另存为一个数组,再和原数组匹配。这种有固定的算法。
[/Quote]
这个固有的算法代码在哪能找到呢?跪求啊,万分感谢
尘缘udbwcso 2011-11-21
  • 打赏
  • 举报
回复

4,12,5,8,11,1,9,3,12,3,5,10,10,1,1,2,1,12,3,10,5,6,7,1,11,7,9
int maxStart = 0, maxCount = 0
取第1个数开始的8个数(即4,12,5,8,11,1,9,3)
和主串进行匹配并记录位置和出现次数(maxStart, maxCount)
取第2个数开始的8个数(即12,5,8,11,1,9,3,12)
和主串进行匹配并记录位置和出现次数,
与上次记录比较取大者放入maxStart, maxCount
.
.
.
.

匹配时用KMP算法,
应该相当于遍历主串(n-7)遍,时间复杂度(n-7)*(n-7)


因为12个取8个排列较多有12*11*.......*5种所以这个应该好点
如果只有2个或3个可以把所有情况列出来去匹配
condlover 2011-11-21
  • 打赏
  • 举报
回复
不懂楼主的意思 。。。。
wushichao1987 2008-04-08
  • 打赏
  • 举报
回复
6楼的方法时间复杂度太高了
chenzhp 2008-04-08
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 lighao 的回复:]
可以把这八个数另存为一个数组,再和原数组匹配。这种有固定的算法。
------------------------------------------------------------

问题是这八个数也不能确定是哪八个数呀?
[/Quote]

你每随机8个数就把它们存储进一个数组,然后再与整个序列比较一次。比较完成后,再把数组清空,重新接受8个数,这样循环下去
lighao 2008-04-08
  • 打赏
  • 举报
回复
可以把这八个数另存为一个数组,再和原数组匹配。这种有固定的算法。
------------------------------------------------------------

问题是这八个数也不能确定是哪八个数呀?
ONLYBLUEMOON 2008-04-06
  • 打赏
  • 举报
回复
可以把这八个数另存为一个数组,再和原数组匹配。这种有固定的算法。
lighao 2008-04-06
  • 打赏
  • 举报
回复
汗。。。我连题意都看不懂。。。

什么是最长的8位数组合?

找出所在的位置?用什么标识位置?
-----------------------------------------
就是找出的这8个数字,一直是连续出现的,没有其它的数字插入。
hiblackman 2008-04-06
  • 打赏
  • 举报
回复
汗。。。我连题意都看不懂。。。

什么是最长的8位数组合?

找出所在的位置?用什么标识位置?
Supper_Jerry 2008-04-06
  • 打赏
  • 举报
回复
定义一个结构体记录数字,位置,连续出现次数。初始次数都为0
定义一个结构体数组,包含8个元素
遍历一遍数据集替换结构体数组。

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧