求教一个组合的算法!!

sonkey 2004-08-21 08:33:41
有一组数字(例如:200,600,400,580...),在这组数字内挑出3~8个数字排成组合,要求每个组合相加的和在一定范围内(例如在4000~3900内)。

请问有什么高速的算法,本人写了一个用递归实现的算法,但是运算速度不太理想,那组数字一般有200个以上的。

请问各位高手有什么优化的算法呢?
...全文
193 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
programfanny 2004-08-27
  • 打赏
  • 举报
回复
同意楼上意见。
crazyboy2003 2004-08-27
  • 打赏
  • 举报
回复
由于你的数据串的数据之间没有任何关系,从信息学的角度上讲,你只能采用递归,不用在别的方面上费神了,你能优化的只是对递归本身进行优化,比如利用“裁支法”等减少递归次数,现在的问题就是如何减少递归次数,这是一个非常典型的0-1背包问题,你应该采用0-1背包问题的解决思路进行优化设计。
sonkey 2004-08-25
  • 打赏
  • 举报
回复
有没有例子代码可以提供
  • 打赏
  • 举报
回复
回溯?为什么??KMP是每次往后走找个最大匹配,这是部分优化,好象也不大好
yelling 2004-08-25
  • 打赏
  • 举报
回复
章鱼说的对,回溯好了
sonkey 2004-08-24
  • 打赏
  • 举报
回复
请问有没有例子代码可以提供
ZhangYv 2004-08-23
  • 打赏
  • 举报
回复
回嗍吧,没有其他特殊的技巧
kotton8848 2004-08-23
  • 打赏
  • 举报
回复
可是怎么优化?kmp的算法的却可以用
  • 打赏
  • 举报
回复
明白了3,4,5,6,7,8个一次,可以大循环不 过要优化吧,你的数的排列是随机的么?修改一下KMP算法也可以
sonkey 2004-08-23
  • 打赏
  • 举报
回复
把组合列出来没有什么随机的问题啊!


这种递归不可以用循环代替吗?
sonkey 2004-08-22
  • 打赏
  • 举报
回复
顶一下
kotton8848 2004-08-22
  • 打赏
  • 举报
回复
不解。。如果楼住知道了 能把答案给我吗? xiexie..这应该算是个递归问题,但是可以用其他的办法来做 可是一是没有好的 gja1983sohu.com
  • 打赏
  • 举报
回复
随机挑出3到8个??

33,010

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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