接着上集来说,伯努利 兄弟还对一个著名的数学问题非常感兴趣,那就是“所有自然数的倒数平方和是多少”。由于伯努利兄弟住在瑞士的巴塞尔,他们对这个问题讨论最多,因此,这个问题也被称为“巴塞尔问题”。
为了让低年级的小朋友明白这个问题的意思,我们编造了一个故事:
说伯努利兄弟的父亲——尼古拉斯老爷子是个大善人,见不得穷人受苦。尼老爷子家里有个牧场,每天能产 6 大桶牛奶。有一天,老爷子突发奇想,决定从今往后把这些牛奶分给穷人。
尼老爷子吩咐家丁去周边寻找穷人。第 1 天,家丁搜寻了家边上 1 排、1 列村庄,找来了 1 位穷人。尼老爷子就把当天产的 6 大桶奶都给了他。
第 2 天,家丁搜寻了家边上 2 排、2 列村庄,2 排、2 列也就是 4 座村庄,因此找来了 4 位穷人。尼老爷子就把当天产的 6 大桶奶平分给这 4 个穷人,每人得到了 1 桶半(1.5 桶)。
第 3 天,家丁搜寻了家边上 3 排、3 列村庄,3 排、3 列也就是 9 座村庄,因此找来了 9 位穷人。老爷子又就把当天产的 6 大桶奶平分给这 9 个穷人,每人得到了不到 1桶。仔细算的话,6 除以 9,得到的是一个小数,只有 0.666666… 桶。

以此类推,照这样永远进行下去,以后每天找来的穷人越来越多,每个人分到的牛奶越来越少。
问,从第 1 天就开始领牛奶的那个人,他永远不断地领下去,最多能领多少桶牛奶。
这个问题难倒了当时全世界的数学家,伯努利兄弟还写信问 莱布尼兹、牛顿,他们也给不出准确的数字。
但是他们可以证明,由于越往后能领到的牛奶就越少,最终接近于无穷小,把这无限多个无穷小加在一起,最后得到的是一个有限大小的数字。只不过,没人知道这个总数具体是几。
时间到了 18 世纪,这时还是在瑞士的巴塞尔,有一位天才少年破解了这个问题。他的名字叫莱昂哈德·欧拉(Leonhard Euler)。
欧拉是怎么解决巴塞尔问题的,在学习大学数学以前无法讲明白,但我们可以用 Scratch 编一个程序,用电脑算一算巴塞尔问题的结果接近多少,看看跟欧拉的计算是否吻合。
代码量:29块积木
背景:Scratch 内置的 Urban
角色:Scratch 内置的 Milk、Witch(上图中的 Bernoulli 没有实际作用,可加可不加)
变量:我的变量,此外,再创建两个变量:sum、a
代码:
Witch(代表欧拉)的代码:
其中的文字为:“如果从第一次就开始领,总共领到的量,是这个数的平方:”
Milk 的代码:
运行:
点击绿旗子后,我的变量从 1 开始逐渐增大,代表累加的次数;牛奶盒将汇报每次的奶量,也就是变量 a;牛奶盒的大小会不断缩小,并往右移动;sum 就是从第 1 次算起,程序运行过程中领到牛奶的总量。
用鼠标点一下欧拉,可以显示当前 sum 的平方根是多少。
当我的变量增长到 600 次以上后,sum 的平方根就会超过 3.14,并还将继续缓慢增大。
3.14 不是一个陌生的数字,对了,我们前面提到的圆周率 π,不就是 3.1415926… 吗。如果你有耐心,再等下去,程序运算的结果会更接近圆周率。
欧拉计算的结果也正是这样:
1 + 1/2² + 1/3² + 1/4² + … = π²/6
这就是巴塞尔问题的答案。具体到我们的故事,从第一次就开始领奶的那个人,最终得到的总数将是圆周率乘以圆周率,也就是:
3.1415926… × 3.1415926… = 9.8696044… 桶
它的平方根,也就是圆周率本身,π。
这位年轻的瑞士少年——莱昂哈德·欧拉,通过解决巴塞尔问题一夜成名,跻身那个时代最聪明的数学家行列。事实上,不如说是数学从此迎来了一个新的时代,一个欧拉大放光彩的时代。