首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

算法征集!各位大牛踊跃参加啊该如何处理

2012-04-18 
算法征集!!各位大牛踊跃参加啊!!问题:C# codeint[] i new int[]{ 1, 2, 3, 4, 5,....100 }数组中10个数

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

C# code
int[] i = new int[]  { 1, 2, 3, 4, 5,....100 };数组中10个数字任意组合,组合不能重复。组合相加的和等于150。组合后由小到大排序。组合内数字不能重复。求解一共有多少组合方式。


大牛踊跃发表高见,不要保留啊。

[解决办法]
最简单的一种:十重循环。会写代码的都会。
[解决办法]
难以想象,有什么好算法
[解决办法]
除了10个循环外 还有什么好方法吗?
 
i0 取值(1->10)
i1 取值(2->?)
....
i9 取值(20->100)

i0<i1<...<i8<i9

[解决办法]
一般这种问题都是 回溯+剪枝
[解决办法]
是否允许0和负数?
[解决办法]
自己搞个公式推导吧 或许数学上有现成的算法
现在的思路
1<=a1<a2<a3……<a9<a10<=100
a1+a2+a3+……+a10=150


设a2=a1+b1 n1>=0
然后替换 依次这么搞 得到 10a1+9b1+……+j=150
后面不会了…… 在抽象抽象
[解决办法]
自己搞个公式推导吧 或许数学上有现成的算法
现在的思路
1<=a1<a2<a3……<a9<a10<=100
a1+a2+a3+……+a10=150


设a2=a1+b1 n1>=0
然后替换 依次这么搞 得到 10a1+9b1+……+j=150
后面不会了…… 在抽象抽象
[解决办法]
from students in student where 条件
[解决办法]
求解的个数用动态规划可以,看看这个帖子。
http://topic.csdn.net/u/20091227/22/dc110ef5-becd-4a63-af8c-8531557b627d.html
to:xiaoh
忙的怎样了?
[解决办法]
探讨

是否允许0和负数?

热点排行