连续数字的总和,直到给定的数字

时间:2017-09-23 15:23:14

标签: math

我想找一个公式来对编程项目进行计算,但我找不到这个术语的名称。 假设我有一个数字3。首先,我必须找到所有数字,直到这个数字..所以{ 1, 2, 3 } 现在我必须添加数字

((1) + (2) + (3) + (1 + 2) + (1 + 3) + (2 + 3) + (1 +2 +3)) = 24

如何调用这个术语并且有一个公式吗? 我在php中尝试了一些不同的方法来完成这项任务,但我的公式是错误的。谢谢你的帮助

1 个答案:

答案 0 :(得分:0)

对于这样的问题,我通常会写出前几个例子并看看它在哪里,即如果我看到任何模式。

f(2) = 
(1)+(2)
+(1+2)
= 2*(1+2) = 6

f(3) =
(1)+(2)+(3)
+(1+2)+(1+3)+(2+3)
+(1+2+3)
= 4*(1+2+3) = 24

f(4) =
(1)+(2)+(3)+(4)
+(1+2)+(1+3)+(1+4)+(2+3)+(2+4)+(3+4)
+(1+2+3)+(1+2+4)+(1+3+4)+(2+3+4)
+(1+2+3+4)
= 8*(1+2+3+4) = 80

所以问题简化为:

f(x) = 2^(x-1)*(x+(x-1)+...+2+1)

此外,(x+(x-1)+...+2+1)的公式已知,x*(x+1)/2。因此,公式是:

f(x) = 2^(x-1)*x*(x+1)/2

但是,我们可以进一步简化2^(x-1)/22^(x-2)

因此,最终的公式是:

f(x) = 2^(x-2)*x*(x+1)

尝试一些示例来验证它是否有效:

f(2) = 2^(0)*2*3 = 6

f(3) = 2^(1)*3*4 = 24

f(4) = 2^(2)*4*5 = 80