从1加到21等于多少?


231

简单直接的计算:

最朴素的方法就是把从 1 到 21 的所有数字一个一个加起来:

1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + 15 + 16 + 17 + 18 + 19 + 20 + 21 = 231

这种方法简单易懂,但如果数字范围很大,就会变得非常耗时。

高斯的故事与等差数列求和公式:

传说数学家高斯小时候被老师布置了类似的作业,但他没有按部就班地加,而是发现了一个巧妙的规律。他注意到:

  • 1 + 21 = 22
  • 2 + 20 = 22
  • 3 + 19 = 22
  • 10 + 12 = 22
  • 11 本身

他将这些配对的数字加起来,发现可以得到 10 个 22,再加上中间的 11,所以结果是 10 * 22 + 11 = 220 + 11 = 231。

高斯的方法实际上利用了等差数列求和的原理。 从 1 到 21 的数字构成一个等差数列,首项 a1 = 1,末项 an = 21,项数 n = 21。等差数列求和公式为:

S = n * (a1 + an) / 2

将数字代入公式:

S = 21 * (1 + 21) / 2 = 21 * 22 / 2 = 21 * 11 = 231

Python 代码实现:

如果你是一位程序员,也可以用代码轻松计算:

“`python
sum = 0
for i in range(1, 22): # 注意:range 函数不包含结束值,所以要到 22
sum += i

print(sum) # 输出 231

或者更简洁:

print(sum(range(1, 22))) # 使用 Python 内置的 sum 函数

或者用列表生成式:

print(sum([x for x in range(1, 22)]))

甚至用数学公式:

n = 21
print(n * (n + 1) // 2) # // 是整除运算符

“`

这些代码片段都能够输出正确答案 231。

数学归纳法验证 (扩展阅读,非必须):

虽然有点过度使用,但我们也可以用数学归纳法来证明等差数列求和公式的正确性,从而验证我们的答案。

  • 基础情况: 当 n = 1 时, 1 = 1 * (1 + 1) / 2 = 1, 公式成立。

  • 归纳假设: 假设当 n = k 时, 1 + 2 + … + k = k * (k + 1) / 2 成立。

  • 归纳步骤: 我们要证明当 n = k + 1 时, 1 + 2 + … + k + (k + 1) = (k + 1) * (k + 2) / 2 成立。

    从等式左边出发:

    1 + 2 + … + k + (k + 1) = k * (k + 1) / 2 + (k + 1) (根据归纳假设)

    = [k * (k + 1) + 2 * (k + 1)] / 2

    = (k + 1) * (k + 2) / 2

    这正是等式右边。

因此,根据数学归纳法,对于任何正整数 n,公式 1 + 2 + … + n = n * (n + 1) / 2 都成立。 当我们取 n=21时,答案依然是231.

总结:

无论是用直接相加、高斯的巧妙方法、等差数列求和公式,还是编程计算,从 1 加到 21 的结果都是 231。 不同的方法展示了解决同一个问题的多种思路,也体现了数学的魅力。


发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注