算法征集!!各位大牛踊跃参加啊!!

haa17 2011-12-27 04:32:29
问题:



int[] i = new int[] { 1, 2, 3, 4, 5,....100 };

数组中10个数字任意组合,组合不能重复。

组合相加的和等于150。

组合后由小到大排序。

组合内数字不能重复。


求解一共有多少组合方式。





大牛踊跃发表高见,不要保留啊。
...全文
252 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
特别 2011-12-29
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 wuyi8808 的回复:]

是否允许0和负数?
[/Quote]
要这样就有无数解了
绿色夹克衫 2011-12-29
  • 打赏
  • 举报
回复
求解的个数用动态规划可以,看看这个帖子。
http://topic.csdn.net/u/20091227/22/dc110ef5-becd-4a63-af8c-8531557b627d.html
to:xiaoh
忙的怎样了?
haa17 2011-12-28
  • 打赏
  • 举报
回复
所有的数字都是在数组里面读取的.就1到100 不存在0和负数的.[Quote=引用 10 楼 wuyi8808 的回复:]

是否允许0和负数?
[/Quote]
  • 打赏
  • 举报
回复
from students in student where 条件
haa17 2011-12-28
  • 打赏
  • 举报
回复
没人上一个完整的代码吗?
烟波钓 2011-12-27
  • 打赏
  • 举报
回复
自己搞个公式推导吧 或许数学上有现成的算法
现在的思路
1<=a1<a2<a3……<a9<a10<=100
a1+a2+a3+……+a10=150


设a2=a1+b1 n1>=0
然后替换 依次这么搞 得到 10a1+9b1+……+j=150
后面不会了…… 在抽象抽象
烟波钓 2011-12-27
  • 打赏
  • 举报
回复
自己搞个公式推导吧 或许数学上有现成的算法
现在的思路
1<=a1<a2<a3……<a9<a10<=100
a1+a2+a3+……+a10=150


设a2=a1+b1 n1>=0
然后替换 依次这么搞 得到 10a1+9b1+……+j=150
后面不会了…… 在抽象抽象
wuyi8808 2011-12-27
  • 打赏
  • 举报
回复
是否允许0和负数?
haa17 2011-12-27
  • 打赏
  • 举报
回复
例子 看看[Quote=引用 8 楼 pmars 的回复:]

一般这种问题都是 回溯+剪枝
[/Quote]
pmars 2011-12-27
  • 打赏
  • 举报
回复
一般这种问题都是 回溯+剪枝
haa17 2011-12-27
  • 打赏
  • 举报
回复
大牛呢
haa17 2011-12-27
  • 打赏
  • 举报
回复
大牛呢?
haa17 2011-12-27
  • 打赏
  • 举报
回复
10层循环,效率太低了,运行起来就基本死掉了。[Quote=引用 2 楼 stonemqy 的回复:]

最简单的一种:十重循环。会写代码的都会。
[/Quote]
kkskssk 2011-12-27
  • 打赏
  • 举报
回复
除了10个循环外 还有什么好方法吗?

i0 取值(1->10)
i1 取值(2->?)
....
i9 取值(20->100)

i0<i1<...<i8<i9
jxj0115 2011-12-27
  • 打赏
  • 举报
回复
难以想象,有什么好算法
stonemqy 2011-12-27
  • 打赏
  • 举报
回复
最简单的一种:十重循环。会写代码的都会。
haa17 2011-12-27
  • 打赏
  • 举报
回复
版主给推荐下啊

怎么没人回答啊

110,500

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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