可以画出几乎所有图形的神奇公式
翻译小组成员介绍: 赵小翼
妹控赵小翼,普通工科生一只。一直努力提升自己各方面能力。如果各位朋友对翻译有更好改进意见,请致信chenpeng2012@hust.edu.cn赐教,谢谢。
英文: plus.maths.org/content/formula-plots-almost-everything, ★提示: 如果文中数字/公式显示较大, 请点击右上角中"刷新"即可恢复正常.
不要跌碎眼镜!本文中,我们将探索数学领域最令人惊讶的公式之一:塔珀自指公式。
▌遇见"怪物"
我们故事的主角是以下不等式:
这看起来令人生惧,但我们能够弄清楚它。符号
和
共同表示向下取整函数:对于一个实数 , 是小于等于 的最大整数,例如 。函数
计算a除以b得到的余数,例如
。给定两个整数
和
,你就能够计算出式上式右边的值,然后看不等式是否成立。
创造这个怪物的弗兰肯斯坦博士是计算机科学家杰夫·塔珀。在2001年的一篇论文中,塔珀介绍绘图软件可以绘制的函数时,将这个表达式作为示例。要使用这个公式绘图,请想象(
,
) 平面被划分为许多边长为
的方块,如下图所示:
图中,左下角的方块坐标为 (0,0),它右边的方块坐标为
,它上方的方块坐标为
,以此类推。为了画出塔珀不等式的图形,我们需要让
从
变到
,所以
方向上共有
个方块。
绘制塔珀不等式的图形,就是对方块着色:如果一组
和
的取值使得塔珀不等式成立,则对坐标为(
,
)的方块着色;否则方块保持空白。
如果对许多组
和
的取值绘图,结果将如下所示:
我马上做解释。你的眼睛并没有欺骗你,这个公式画出了它本身的一个位图!因此它的名字是塔珀自指公式(虽然在 2001 年论文中,塔珀自己从未如此称呼过这个公式)。
然而,还有一个细节被遗漏了。我还没有告诉你
轴上N的数值。N是一个很大的数字,如下:
N=4858450636755315833144376495077387875434778047004800790770568186826854913387409480464319898086711955985226348628612592051572519203470384822977841686502813772341550071665222699610986913584247968836587062537370855964358217842804787221369694768139834972825707334012973770469504608444468078490191108987622691041618529314068404487537214619861255268382593637759805767813182770282392391246557259902123607466665214555983376497884240296412850594337074481185057142090603575984621508637348804068112129087015225053994512537667043573283090413808140105325068.
[注意:这个N值,可能与你在其他塔珀自指公式相关文章中看到的数值不一致。这是由于坐标系的显示方法有两种惯例。数学上,
轴的正半轴方向向上,而在计算机科学中它的方向向下。但无论你使用哪种坐标系显示惯例下的相应N值,最坏的情况不过是图形发生上下翻转。]
如果你观察
坐标在
之间的方块(忽略掉坐标在这一区间之外的方块),你将会看到塔珀公式自身的位图。
▌绘图扩展
现在让我们来做扩展。假设我们不喜欢
位的N值,想在
轴上下移动,看会得到什么图形。当在
轴上从负无穷大(由向下方向指示)移动到正无穷大(由向上方向指示),塔珀公式画出了几乎所有图形。
任何可以用尺寸为
的两色像素网格表示的图片,都可以在塔珀公式图形中特定的
值处看到。举一个例子。
这是欧拉公式,数学中最著名的方程之一,往往也被认为是最美丽的方程之一:
欧拉公式出现在
坐标为
到
之间,其中
N=2352035939949658122140829649197960929306974813625028263292934781954073595495544614140648457342461564887325223455620804204796011434955111022376601635853210476633318991990462192687999109308209472315419713652238185967518731354596984676698288025582563654632501009155760415054499960.
然后是高斯函数积分式的图片,这是数学中另一个著名的表达式:
相应的
值是:
N=508411814725237793490184685607928051712978709069113963219472322355961889205509647875243182487424548011065302195495255076677579195428341974648257591226943624088561851582362286514668228623643268365545205530024977530231620346490475113424521177721792317416883907382225428124416171767731730432833100919222165896234346422524283458953655483165926745106112524241008306406740167124219895434116142045940981532296849259570821460383355145202351587983360.
显然,我们不需要局限于数学表达式的图片。在塔珀公式图形中可以找到任意
像素网格表示的图形。
▌从图片计算
值
如前所述,这个位图函数是在一系列方块上绘图。假设你已经有想绘制的图片,需要知道相应的N值——如何找到它?这个过程 相当简单:
1. 从所需图片的左下角像素开始,如果该像素需要着色则记下
,如果空白则记下
。然后考虑它正上方的方块,并以相同的方式记下
或
。
2. 在第一列上继续向上移动。处理完第一列后,从第二列的最底部方块开始,在第二列中向上移动。如上所述重复
和
的分配过程。
3. 在第二列上向上移动,然后第三列,第四列,第五列,依此类推,直到你为
像素图像的每一列中的每一个像素都分配了
或
。
4. 你现在将拥有一个非常长的
和
的字符串(确切地说是
位的字符串)。该字符串表示一个二进制数。将此二进制数转换为十进制,并乘以
。
5. 像变魔术一样,你现在得到了对应于你所想绘制的图形的
值。
可以尝试自己玩一下塔珀公式,生成 [遇见数学] 的图像, 当
N=15844829275720163961218700430801837895380118306031187615053056284019321411741459301367870044338133072633287728009576452400625206670253211818999182636117953853678919074021533381463623176391147373406600884593226689653482517250325937259906259701982679495982654472088010452700860531959486594230507675561368244668673286149852279023506569272492813963867592460397183184240327086159206344537254962256718030995994743074383535141484901695488.