Brilliant Math

我们确实在追踪某些东西。奇数之和与平方数有关吗?看起来是这样,但这也可能是一个奇怪的巧合。

为了确保,让我们思考一下构成平方数的要素。

点击进度条Bar,看它们是如何增长的。

每次方块的大小增加,都会在旧方块上添加一个新的层。

每个新层中的方块数量是奇数还是偶数?这些层是上面方块的绿色、绿色、蓝色、蓝色和紫色部分。

奇数 没错!

它总是奇数。你能理解为什么吗?

为了制作更大的方块,我们首先需要在顶部和侧面添加相同数量的方块。综合起来,这使得新方块的数量是偶数,因为可以平均分成两半。

最后,我们再添加一个角块,这使得新层的总和是奇数。

1-10之间自然数的平方,列表推导式如下:

n = 10
#平方数
nseq = [i**2 for i in range(n)]

print(nseq)
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

上面的输出比较奇数求和可见:

#奇数求和
prev,ans = [],[]
for i in range(n):
    prev.append(i*2 + 1)
    ans.append(sum(prev))
    
print(prev)
print(ans)

[1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

编程实现了两种思路求平方数。验证了10以内的满足假设。

数学的求证则要证明任意自然数 n 都满足假设:

n ** 2 = 1 + 3 + ... + 2*n-1

本文的开始就用无字证明或图证明了上述假设成立。

最后,我们看高斯法也很快能证明上述假设:

首尾两端相加,发现都等于: 1 + 2n-1 = 2n,剩下就只需算出共有多少对相加等于 2*n ? 问题转换为 n 以内有多少个奇数?

显然 n 是偶数时,奇数的个数是 n / 2; 那么,n / 2 个奇数的和是:

(n / 2) * 2 * n = n ** 2 (证明假设成立)

n 是奇数时,奇数的个数是 (n - 1)/2 + 1

(n - 1)/2 * (2 * n) + n = n * (n-1) + n = n**2

证明完毕!

您喜欢哪种证明方式,或者你有更有趣的方法证明之,请回复我们。

本文由 mdnice 多平台发布

你可能感兴趣的:(后端)