塔珀自指公式
塔珀自指公式(英语:Tupper's self-referential formula)是杰夫·塔珀(英语:Jeff Tupper)发现的自指公式:此公式的二维图像与公式本身外观一样。
历史
公式最初于他2001年SIGGRAPH的论文中提及。此论文主要讨论他开发的GrafEq (页面存档备份,存于互联网档案馆)公式作图程序的相关方法。此公式在众多数学与计算机科学课程里被用作绘制公式图像的练习作业。
公式
此公式是个不等式:
其中 表示floor函数, 表示模除。如果让常数 等于:
960 939 379 918 958 884 971 672 962 127 852 754 715 004 339 660 129 306 651 505 519 271 702 802 395 266 424 689 642 842 174 350 718 121 267 153 782 770 623 355 993 237 280 874 144 307 891 325 963 941 337 723 487 857 735 749 823 926 629 715 517 173 716 995 165 232 890 538 221 612 403 238 855 866 184 013 235 585 136 048 828 693 337 902 491 454 229 288 667 081 096 184 496 091 705 183 454 067 827 731 551 705 405 381 627 380 967 602 565 625 016 981 482 083 418 783 163 849 115 590 225 610 003 652 351 370 343 874 461 848 378 737 238 198 224 849 863 465 033 159 410 054 974 700 593 138 339 226 497 249 461 751 545 728 366 702 369 745 461 014 655 997 933 798 537 483 143 786 841 806 593 422 227 898 388 722 980 000 748 404 719
然后将在 和 所示范围中符合以上不等式的点 绘制出来,结果会是这样:
这个公式本身是一个从常数 中解码出一个相对应的黑白位图的通用方法,因此事实上此公式可以用来绘制任何图像。当此公式被绘制到 的无界正向带里的时候,图像上显现出一个纵向窄带,在此窄带内所有可能的17像素高的位图都出现过。这块无穷大的位图中有一个横向切片描绘了绘制函数本身,但这并不意外,因为别的切片会描绘所有能被填进17像素高的位图中的公式。塔珀还通过电子邮件传播了这个原始公式的扩展版本,这些版本的公式将其他的切片都抹除了。
这里的常数 是将公式的单色位图化成二进制后乘以17得来的。如果将 除以17(并化成二进制),最小一位代表图像左下角的像素;最小的17位构成了最左边的一列像素;第二小的17位构成了左数第二列像素;以此类推。
参见
- 递归
- 自产生程式
参考文献
- Tupper, Jeff. Reliable Two-Dimensional Graphing Methods for Mathematical Formulae with Two Free Variables (PDF). The University of Toronto's Dynamic Graphics Project. [2013-01-25]. (原始内容 (PDF)存档于2012-02-05). (英文)
- Weisstein, Eric W. (编). Tupper's Self-Referential Formula. at MathWorld--A Wolfram Web Resource. Wolfram Research, Inc. [2013-01-25]. (原始内容存档于2021-02-05) (英语). (英文)
- Bailey, D. H.; Borwein, J. M.、Calkin, N. J.、Girgensohn, R.、Luke, D. R.、Moll, V. H. Experimental Mathematics in Action (PDF). Natick, MA: A. K. Peters. 2006: 289 [2006] [2013-01-25]. ISBN 978-1568812717. (原始内容 (PDF)存档于2012-06-17). (英文)
- Self-Answering Problems. Math Horizons. April 2006, (13): 19. (英文)
外部链接
- 杰夫·塔珀官方主页 (英文)
- 杰夫·塔珀的原始自指公式的拓展 (页面存档备份,存于互联网档案馆)
- TupperPlot,在JavaScript中的一个实现
- Tupper_self_referential_formula,在Python中的一个实现
- The Library of Babel function (页面存档备份,存于互联网档案馆)(英文),一个塔珀自指公式的工作原理的详细阐述
- Tupper's Formula Tools,在JavaScript中的一个实现