塔珀自指公式()是傑夫·塔珀()發現的自指公式:此公式的二維圖像與公式本身外觀一樣。
歷史
公式最初於他2001年SIGGRAPH的論文中提及。此論文主要討論他開發的[http://www.peda.com/grafeq/ GrafEq] 公式作圖程序的相關方法。此公式在眾多數學與計算機科學課程裡被用作繪製公式圖像的練習作業。
公式
此公式是個不等式:
: {1\over 2}
其中\lfloor \cdot \rfloor表示向下取整,\mathrm{mod}表示模除。如果讓常數k等於:
然後將在0 \le x \le 105和k \le y \le k + 16所示範圍中符合以上不等式的點(x,y-k)繪製出來,結果會是這樣:
這個公式本身是一個從常數k中解碼出一個相對應的黑白位圖的通用方法,因此事實上此公式可以用來繪製任何圖像。當此公式被繪製到0 \le y的無界正向帶裡的時候,圖像上顯現出一個縱向窄帶,在此窄帶內所有可能的17像素高的位圖都出現過。這塊無窮大的位圖中有一個橫向切片描繪了繪製函數本身,但這並不意外,因為別的切片會描繪所有能被填進17像素高的位圖中的公式。塔珀還通過電子郵件傳播了這個原始公式的擴展版本,這些版本的公式將其他的切片都抹除了。
這裡的常數k是將公式的單色位圖化成二進制后乘以17得來的。如果將k除以17(并化成二進制),最小一位代表圖像左下角的像素;最小的17位構成了最左邊的一列像素;第二小的17位構成了左數第二列像素;以此類推。
參見
*遞歸
*自產生程式
參考文獻
*
*
*
*
外部链接
- [https://web.archive.org/web/20120222031754/http://www.dgp.toronto.edu/people/mooncake/ 傑夫·塔珀官方主頁]
- [http://www.peda.com/selfplot/ 傑夫·塔珀的原始自指公式的拓展]
- [https://web.archive.org/web/20111110191931/http://web.aanet.com.au/superseed/ajmcrae/TupperPlot/TupperPlot.html TupperPlot],在JavaScript中的一個實現
- [https://web.archive.org/web/20130319093833/http://www.pypedia.com/index.php/Tupper_self_referential_formula Tupper_self_referential_formula],在Python中的一個實現
- [http://avitzur.hax.com/2007/01/the_library_of_babel_function.html The Library of Babel function] ,一個塔珀自指公式的工作原理的詳細闡述
- [https://web.archive.org/web/20181021055213/http://tuppers-formula.tk/ Tupper's Formula Tools],在JavaScript中的一個實現
评论 (0)