《我的世界》搞数学研究,估算欧拉数误差仅0.00766%!

在《我的世界》里估算欧拉数e,误差仅约0.00766%!

两位数学博士“跨界”整了个大大大活儿——

用《我的世界》搞数学研究,通过游戏机制成功估算各种数学常数的值。

√2、π、欧拉数e、阿佩里常数ζ(3),难度逐级递增,但都是他们的实验对象。

对于阿佩里常数ζ(3),用这两位作者的话说,一般人可能见都没见过,但也能用《我的世界》近似算出值来,而且误差仅约为0.4%。

实验结合游戏机制用到了各种方法,比如近似π值时,使用了蒙特卡洛积分法,借助游戏中的僵尸疣猪兽杀死史莱姆来完成。

两位作者分别是来自自霍林斯大学、美国罗诺克大学的助理教授。

论文中,他们不仅介绍了每个常数的数学历史背景,详细说明了如何在《我的世界》中设计实验来近似计算这些值,甚至还提出了具体的改进建议,为大伙儿留下了“课后作业”来挑战。

作者强调这些实验的目的不是为了获得最精确的近似值,而是为了激发大家从这项研究中找到灵感,用有趣的方式探讨复杂的数学问题。

所以,究竟是如何做到的?

用《我的世界》近似数学常数的值

在估算数学常数前,先来浅浅了解一下《我的世界》中将被用作“实验道具”的材料。

漏斗(Hopper):

如果一个玩家/动物/怪物站在漏斗上方被杀死,那么漏斗会收集该生物掉落的物品。因此,漏斗可以用来记录生物被杀死的位置。

除收集物品外,漏斗还具有另一个特性,它们可以以每秒2.5个物品的恒定速率释放物品。漏斗释放物品的能力可以开启或关闭。

由于漏斗以恒定速率释放物品,它们可以用作计时器。例如,如果一个漏斗释放了25个物品,那么我们知道漏斗释放物品的时间在10秒到10.4秒之间。

当然《我的世界》中有制作更精确计时器的方法,但对于该实验来说,漏斗计时器够用。

投掷器(dropper):

投掷器是一个可以投掷物品的方块,可同时容纳9种不同物品。

当被激活时,投掷器会随机选择其中的一个物品进行投掷。因此,投掷器可以用作随机化工具。例如,如果投掷器中有5种不同的物品,那么特定物品被投掷出去的概率是1/5。

侦测器(observer):

侦测器是一个方块更新检测器,可以检测到它面对的方块状态是否发生变化。

一个方块可能发生的变化包括作物生长、冰融化、火势蔓延……这些变化是随机发生的,因此可以通过侦测器检测这些变化来创建一个随机化工具。

接下来就可以玩“数学游戏”啦~

PS:题目难度由简入难

√2

早在2000多年前,毕达哥拉斯学派用反证法证明了√2不能写作两整数之比,√2也成为了人们发现的第一个无理数。

现在,√2也是该研究第一个要用《我的世界》估算的数学常数。

方法利用了45°-45°-90°直角三角形的边长比是1 : 1 : √2。

这样的三角形在《我的世界》中很容易制作,因为《我的世界》中,放置任何方块都必须放在网格上。

要近似计算√2的值,可以简单地分别测量玩家以恒定速度沿着一条直角边和斜边行走所需的时间,斜边长度是直角边的√2倍,行走时间比率也应该近似为√2。

如前所述,漏斗以恒定速率释放物品,可以计算玩家行走期间所释放的物品数量,以此来计时。

实验中,沿着斜边行走完,漏斗释放了57个物品,沿着一条直角边行走完,漏斗释放了41个物品。

所以得出:

√2保留到小数点后四位是√2=1.4142,所以近似值误差为1.70%。

作者还表示这种方法还可以改进:

一个很明显的改进方法是构建一个更大的三角形,近似值将更准确。或者可以让行走速度变慢,玩家可以在出发前喝下缓慢药水。

以此类推可以估算√5的值,但√7不行,7不能表示为两个完全平方数的和。

这引出了一个问题:哪些数字可以表示为两个平方数的和?

作者认为对于几何学老师来说,可以使用这样的实验向几何学生介绍基本的数论。

下一个要估算的数学常数是——

1768年约翰·海因里希·朗伯(Johann Heinrich Lambert)证明π是无理数。1882年费迪南德·冯·林德曼(Carl Louis Ferdinand von Lindemann)首次证明π是超越数。

希腊数学家阿基米德通过在圆内外构建正多边形,为π的值找到了上下界。当使用96边形时,阿基米德发现3.1408<π<3.1429。

计算机的发展带来了计算π值的不同方法。蒙特卡洛方法就是其中一类,通过评估多次随机试验的结果来近似值。

蒙特卡洛方法中的一种,蒙特卡洛积分,通过绘制一个内切于正方形的单位圆,然后在正方形内均匀随机地散布点。

由于圆的面积是π,正方形的面积是4,圆内点的数量与总点数的比将大致等于π/4。

《我的世界》中同样可以重现蒙特卡洛积分法,近似计算π值。

《我的世界》中的每个方块都放置在网格上,所以无法制作一个完美的圆形。然而,网上有许多工具可以在《我的世界》中近似划定一个圆的边界。

作者使用了一个《我的世界》圆形生成器,做了一个半径为11的近似圆形:

接下来的问题是找一种在《我的世界》中生成随机点的方法。

为此,作者利用了一种叫做“史莱姆”的生物的行为。使用史莱姆是因为与其他生物不同,当附近没有玩家时史莱姆会继续移动,并且它们会随机改变方向。

而大多数其他生物有向东南方向行走的倾向,所以它们会聚集在正方形的东南角。

接着作者们让另一种生物——僵尸疣猪兽(zoglin),杀死史莱姆,使用漏斗跟踪史莱姆是否在圆内被杀死。

在实验中,共有619个史莱姆被杀死,其中508个是在圆内被杀死的。

所以得到了近似值:

近似误差为4.49%。

因为蒙特卡洛方法通常收敛较慢,所以作者表示对这个相对较大的误差并不惊讶。

如果童鞋们自己想尝试的话,改进方法:增大圆的大小和增加被杀死的史莱姆数量。

在这种蒙特卡洛方法中,圆的大小通常不会影响近似值的准确性,但由于在《我的世界》中无法制作完美的圆形,增大圆的大小将提高近似值的准确性。

同样,用来近似计算π值的方法,也可以用来近似计算其它定积分的值。

例如,假设你想使用《我的世界》进行蒙特卡洛积分以近似计算积分:

通过作者创建的Desmos页面的帮助,可以绘制出y=f(x)曲线与x轴之间的区域。

回想一下,定积分∫ₐᵇf(x) dx的值是由曲线y=f(x)与x轴在x=a到x=b之间围成的区域的净面积。

因此,在《我的世界》中近似计算定积分的一个方法是,首先找出在x轴上方区域和x轴下方区域死亡的史莱姆数量之间的差异。

将这个差异乘以总面积再除以死亡的史莱姆总数,就可以得到定积分值的近似值。在《我的世界》中,可以用下面这个函数近似曲线y=f(x):

这里⌊x⌉将x四舍五入到最近的整数。

作者们表示这可能是一个有趣的实验,适用于正在学习积分微积分的学生。

欧拉数e

接下来继续上难度——欧拉数e,欧拉数e的值保留到小数点后五位是e=2.71828。

大家可能记得e是自然对数的底数,也是复合利息公式的一部分。它被定义为以下极限:

虽然以e为底的对数计算早在1618年就已经开始,但那时并没有使用e这个符号。

所谓的e“发现”最早是由雅各布·伯努利(Jacob Bernoulli)在1638年研究连续复利时偶然发得出的,他尝试计算上述极限,利用二项式定理证明了e的值在2和3之间,但当时e还没有一个具体的名字或更精确的近似值。

欧拉(Euler)最终将对数与e这个数联系起来,他计算了上述极限,并用符号e表示其值,1737年证明了e是无理数。到了1873年,查尔斯·埃尔米特(Charles Hermite)进一步证明了e是超越数。

话说回来,在《我的世界》中近似e的值,要了解欧拉1748年提出的e的表达式:

现在考虑函数f(x)=eᕽ,这个函数可以用它的麦克劳林级数表示为:

注意,当x=−1时,得到到1/e的交错级数展开式:

我们将看到,这个表达式的第n个部分和是一个特定计数问题的解。

现在描述这个问题,令:

定义:[n]的排列是[n]中元素的一个确定顺序的排列。

[n]的排列可以看作数字1到n的线性排序。例如,[3]的排列包括123、132、213、231、312和321。[n]的排列总数是:

这个乘积传统上用n!表示。

定义:一个错位排列是没有固定点的[n]的排列。

换句话说,如果ω是[n]的一个排列,那么那么当且仅当

ω是一个错位排列。

例如,考虑[6]的以下排列:ω=324165。这不是一个错位排列,因为数字2在第二个位置,即ω₂=2。

然而,排列ν=431562是一个错位排列,因为:

我们用D(n)表示[n]的错位排列数,可以证明:

比较等式(2)和(3),可以看到

给出了等式(2)的第n个部分和。

因此,可以看到1/e近似等于随机排列是错位排列的概率。特别地:

了解了这些过后,在《我的世界》中如何近似计算?

两位作者制造了一台机器,这台机器能:

一旦机器被制造出来,就让它运行多次,生成足够大的样本。

如前所述,投掷器可以用作随机器。由于投掷器最多可以容纳9种不同的物品,所以可以利用其随机弹出机制来创建 [9]的排列。

投掷器中的每个格子对应[9]中的一个数字。弹出的物品的顺序可以被视为一个排列。而且在《我的世界》中是有方法可以自动检查投掷器弹出了哪个物品。

具体如何操作这里就不多赘述了。

因此,可以制造一台机器来检查所生成的排列是否为错排。这是通过检查与某个数字对应的格子是否在那个位置被弹出来实现的。

如果9个格子中的每一个都被弹出到了与它们编号不对应的位置,那么这个排列就是一个错排。

作者在实验生成的排列中,错排比例大约是1/e。也就是说:

共生成了647个排列,其中238个是错排。所以e的近似值:

近似误差大约是0.00766%,准确度非常高了。

作者表示如果让机器无限运行,1/e的近似误差将小于:

两位作者同样再次鼓励大家自己尝试一下,或许还能搞个新定义:

如果一个排列ω的条目交替上升和下降,那么称这个排列为交错排列,即ω1<ω2>ω3< ….例如,排列1423是交错的,但排列1342不是,因为ω2≯ ω3。如果让An表示[n]的交错排列数,那么安德烈定理(André’s Theorem)表明:

这意味着你可以使用《我的世界》来近似计算sec(1)+tan(1)的值。

布置完“课后作业”,两位助理教授还特意留下这么一句话:

还没完,还有一个数学常数,而且可能是你以前未曾见过的。

用作者的话说,即使你遇到过它,可能也不知道它有一个名字——

阿佩里常数ζ(3)

ζ(3),被定义为正立方数倒数的和,即:

之所以被记为ζ(3),是因为它是在s=3时黎曼ζ函数(Riemann zeta function)的值。

一般来说,黎曼ζ函数定义为:

欧拉证明了黎曼ζ函数的以下乘积公式:

阿佩里常数的值保留到小数点后五位是ζ(3) = 1.20205。

1979年,罗杰·阿佩里(Roger Apéry)证明了ζ(3)是无理数。这个数字是否是超越数目前仍然是一个未解决的问题。

阿佩里常数有各种级数和积分的表示形式。其中一些表示形式非常复杂。

然而,作者表示阿佩里常数的值可以通过概率方法确定,阿佩里常数的倒数是随机选取的任意三个正整数互质的概率。

为什么:

要使三个正整数互质,就不能有任何质数同时整除这三个数。例如,6、9、21不是互质的,因为它们都可以被3整除。对于一个质数p,p整除一个随机整数的概率是1/p。因此,p同时整除这三个数字的概率是1/p³。

这意味着至少有一个数字不被p整除的概率是:

让P₃表示三个随机选定的正整数互质的概率,由此得出:

比较等式(4)和(5),可以看出:

OK,那在《我的世界》中如何近似计算阿佩里常数。

作者们反复生成了三个随机数的集合,称为三元组,并手动检查这些数字是否互质。互质的三元组的比例将大约等于 ζ(3) 的倒数。

如前文所述,《我的世界》中侦测器能够检测到它面对的方块状态的变化。

而《我的世界》中许多方块会在随机间隔改变状态。通常,每0.05秒,游戏随机选择一个16×16×16的立方体中的3个方块来改变状态。如果选定的方块有改变状态的能力,它们将以一定的预定概率改变状态。

为了生成一个随机数三元组,作者安排了三个侦测器,每个侦测器面对自己的竹子植物,还使用了一个漏斗计时器来记录每个竹子植物改变状态所需的时间。

belike:

需要注意的是,生成的随机数并不遵循均匀分布,而是遵循负二项分布。

在实验中,作者收集了70个随机数三元组,发现58个三元组是互质的。

于是得到ζ(3)的近似值:

近似误差约为0.4%。

作者补充道,这种方法生成的数字范围在最小3和最大838之间,在获取广泛多样的数字方面比预期做得更好。

最后来看“课后作业”。

回想一下,三个随机选取的正整数互质的概率是 ζ(3)⁻¹。

一般来说,Pm,即随机均匀选择的m个正整数互质的概率,是ζ(m)⁻¹。

这意味着你可以使用上述方法来近似各种m值的ζ(m)。特别是,你可以近似π的任何偶数次幂的值,因为ζ(2k)总是π的2k次方的有理倍数。

例如,由于ζ(2)=π²/6,因此:

这意味着可以通过生成一对数字并检查它们是否互质来近似π²的值。

对于那些寻求挑战的人,还可尝试通过在《我的世界》中制造一个机器来自动化检查过程,该机器可以找到两个正整数的最大公约数。如果最大公约数是1,那么这些数字就是互质的。

作者表示:

好嘛,有哪位朋友挑战一下下~