**Rumus referensi-diri Tupper** merupakan sebuah rumus diperkenalkan oleh Jeff Tupper bahwa, saat dgambarkan dalam dua dimensi pada lokasi tertentu pada bidang, dapat di"program" untuk menampikan rumus tersebut. Rumus ini dipakai dalam pendidikan matematika dan ilmu komputer sebagai sebuah latihan dalam rumus grafik. Meskipun rumus ini dikenal sebagai "rumus referensi-diri", sebenarnya merupakan sebuah nama yang salah, karena gambar tersebut tidak menyandikan konstanta K yang merupakan data eksternal, dan Tupper sendiri tidak menjelaskan rumus tersebut dengan cara tersebut.

Rumus ini pertama kali dipublikasikan dalam naskah SIGGRAPH 2001nya yang membahas cara terkait program penggambar-rumus GrafEq yang dia kembangkan.

Rumus ini merupakan pertidaksamaan:

{\displaystyle {1 \over 2}<\left\lfloor \mathrm {mod} \left(\left\lfloor {y \over 17}\right\rfloor 2^{-17\lfloor x\rfloor -\mathrm {mod} (\lfloor y\rfloor ,17)},2\right)\right\rfloor ,}
di mana {\displaystyle \lfloor \cdot \rfloor } menandakan fungsi pembulatan ke bawah, dan {\displaystyle \mathrm {mod} } merupakan operasi modulus.

Misalkan *k* sama dengan bilangan bulat 543-digit berikut ini:

> 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
> 
> 

Jika satu grafik menggambarkan kumpulan titik (*x*, *y*) dalam {\displaystyle 0\leq x<106} dan {\displaystyle k\leq y<k+17} sesuai dengan pertidaksamaan di atas, menghasilkan grafik seperti ini (ingat bahwa sumbu pada grafik ini telah dibalik, jika tidak gambar akan keluar terbalik atas bawah):

  


  

Rumus ini sendiri merupakan cara umum dari penguraian sebuah bitmap yang disimpan dalam konstanta *k*, jadi ini dapat digunakan untuk menggambar gambar yang lain. Saat dipakai dalam {\displaystyle 0\leq y}, rumus ini memetakan sebuah petak vertikal dengan pola yang terkandung semua kemungkinan bitmap setinggi 17 piksel. Satu potongan dari bitmap tak terhingga tersebut melukiskan rumus menggambar itu sendiri, tetapi bukanlah sesuatu yang luar biasa, semenjak potongan lain menggambarkan semua kemungkinan yang lain yang mungkin cukup dalam sebuah bitmap setinggi 17 piksel. Tupper telah menyebarkan informasi, lewat surel, versi tambahan dari rumus aslinya yang mengatur semua kecuali satu potongan (, ).

Konstanta *k* adalah sebuah gambar bitmap monokromatik sederhana dari rumus yang diperlakukan sebagai sebuah bilangan biner dan dikali 17, least significant bit menyandikan pojok kanan-atas (*k*, 0); 17 least significant bit menyandikan kolom paling kanan dari piksel; 17 least significant bit selanjutnya menyandikan kolom paling kanan kedua, dan seterusnya, membentuk gambar dari rumus.

Daftar Pustaka
--------------

1. ↑  Narayanan, Arvind. "Tupper's Self-Referential Formula Debunked". Diakses tanggal 20 February 2015.
2. ↑  "How does Tupper's self-referential formula work?". Diakses tanggal 20 February 2015.

Pranala luar
------------

* Situs resmi Jeff Tupper
* Ekstensi dari Tupper's original self-referential formula
* TupperPlot Diarsipkan 2011-11-10 di Wayback Machine. sebuah implementasi dalam JavaScript
* Tupper self referential formula Diarsipkan 2013-03-19 di Wayback Machine. sebuah implementasi dalam Python
* The Library of Babel function, sebuah penjelasan detail dari cara kerja Rumus referensi-diri Tupper