什么是(N-1)+(N-2)+(N-3)+ ... + 1 = N *(N-1)/ 2的证明

时间:2010-03-20 17:05:27

标签: formula proof

我从冒泡排序算法中的数据结构书中得到了这个公式。

我知道我们是(n-1)*(n次),但为什么除以2?

任何人都可以向我解释一下或提供详细的证明。

谢谢

9 个答案:

答案 0 :(得分:19)

从三角形开始...

    *
   **
  ***
 ****
到目前为止

代表1 + 2 + 3 + 4。沿着一个维度将三角形切成两半......

     *
    **
  * **
 ** **

将较小的部分旋转180度,并将其粘贴在较大部分的顶部......

    **
    * 

     *
    **
    **
    **

关闭间隙以获得矩形。

乍一看,这只有在矩形底部长度均匀的情况下才有效 - 但如果它有一个奇数长度,你只需将中间一列切成两半 - 它仍可以半个单位宽度两次 - 如-tall(仍为整数区域)条带在矩形的一侧。

无论三角形的底边是什么,矩形的宽度为(base / 2),高度为(base + 1),为((base + 1) * base) / 2

但是,我的base是您的n-1,因为冒泡排序一次比较一对项目,因此仅针对第一个循环迭代(n-1)个位置。

答案 1 :(得分:14)

(N-1) + (N-2) +...+ 2 + 1是N-1项的总和。现在重新排序项目,以便在第一个到达最后一个,然后是第二个,然后是第二个到最后一个,即(N-1) + 1 + (N-2) + 2 +..。现在订购商品的方式你可以看到这些商品中的每一对都等于N(N-1 + 1是N,N-2 + 2是N)。由于存在N-1个项目,因此存在(N-1)/ 2个这样的对。所以你要加N(N-1)/ 2次,所以总值为N*(N-1)/2

答案 2 :(得分:8)

尝试从集合中生成数字对。第一个+最后一个;第二个+前一个。这意味着n-1 + 1; n-2 + 2.结果总是n。由于您要将两个数字相加,因此只有(n-1)/ 2对可以由(n-1)个数组成。

所以它就像(N-1)/ 2 * N.

答案 3 :(得分:7)

请参阅triangle numbers

答案 4 :(得分:4)

  

我知道我们是(n-1)*(n次),但为什么除以2?

如果你使用天真的气泡,它只有(n - 1) * n。如果您发现以下情况,可以节省大笔费用:

  • 每次比较和交换后,您遇到的最大元素将位于您所在的最后一个位置。

  • 第一次传球后,最大的元素将位于最后位置;在k th 通过之后,k th 最大元素将位于k th 最后位置。

因此,您不必每次都对整个事物进行排序:您只需要第二次排序n - 2个元素,第三次排序n - 3个元素,依此类推。这意味着您必须执行的比较/交换总数为(n - 1) + (n - 2) + ...。这是一个 arithmetic series ,总次数的等式是(n - 1)* n / 2.

示例:如果列表的大小为N = 5,则执行4 + 3 + 2 + 1 = 10次交换 - 并注意10与4 * 5相同2。

答案 5 :(得分:2)

这是一个很常见的证据。证明这一点的一种方法是使用数学归纳法。这是一个链接:http://zimmer.csufresno.edu/~larryc/proofs/proofs.mathinduction.html

答案 6 :(得分:1)

算术进展的总和

(A1 + AN)/ 2 * N =(1 +(N-1))/ 2 *(N-1)= N *(N-1)/ 2

答案 7 :(得分:1)

假设n = 2。然后我们左侧2-1 = 1,右侧2 * 1/2 = 1。

表示f(n)=(n-1)+(n-2)+(n-3)+ ... + 1

现在假设我们已经测试了n = k。然后我们必须测试n = k + 1。

在左侧我们有k +(k-1)+(k-2)+ ... + 1,所以它是f(k)+ k

在右侧,我们有(k + 1)* k / 2 =(k ^ 2 + k)/ 2 =(k ^ 2 + 2k - k)/ 2 = k +(k-1) k / 2 = k f(k)

所以这必须适用于每一个k,这就证明了这一点。

答案 8 :(得分:1)

这是一个归纳证明,考虑N条款,但N - 1也是如此:

对于N = 0,公式显然是正确的。

假设某些自然1 + 2 + 3 + ... + N = N(N + 1) / 2 N为真。

通过使用我们之前的假设,我们将证明1 + 2 + 3 + ... + N + (N + 1) = (N + 1)(N + 2) / 2也是正确的:

1 + 2 + 3 + ... + N + (N + 1) = (N(N + 1) / 2) + (N + 1) = (N + 1)((N / 2) + 1) = (N + 1)(N + 2) / 2

因此公式适用于所有N