Tuppers “zelfverwijzende” formule

In het juli/augustus-nummer van PC-Active heb ik een artikel geschreven over paradoxen en zelfreferentie. Zowel de filosofische kant als computertoepassingen komen aan bod. Zo beschrijf ik er zogenaamde quines, computerprogramma’s zonder invoer die hun eigen broncode als uitvoer geven. Je kan de besproken quines in C, Java, Ruby en Prolog downloaden om er zelf eens mee te experimenteren. Als voorbeeld hier een C-quine:
main(){char q=34,n=10,*a="main(){char q=34,n=10,*a=%c%s%c;printf(a,q,a,q,n);}%c";printf(a,q,a,q,n);}
Een andere zelfreferentie in computerprogramma’s is Kenneth Thompsons zelfreferende compiler, die bekend staat als de Thompson hack. In Reflections on trusting trust, zijn lezing na het accepteren van de Turingprijs, gaf hij een manier om een achterpoortje in software in te bouwen door de C-compiler aan te passen, en dat op zo’n manier dat het onzichtbaar is.

Verder ontmasker ik in het artikel de “zelfreferentiĆ«le” formule van Tupper, die in het begin van dit jaar op allerlei blogs op internet furore maakte. Jeff Tupper publiceerde in 2001 de volgende formule:

Wanneer we nu voor n het volgende getal invullen:
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
en dan de punten (x, y) met 0 < x < 106 met n < y < n + 17 tekenen die voldoen aan Tuppers ongelijkheid, dan krijgen we de volgende plot:

Verrassend, niet? Op het eerste gezicht lijkt dit inderdaad fenomenaal: Tuppers formule stelt zichzelf voor! Niets is minder waar: Tuppers formule is gewoon een algemene methode om een bitmap te decoderen die in een getal opgeslagen is. We kunnen met dezelfde formule elke afbeelding tekenen. In het artikel leg ik uit hoe de formule werkt en illustreer ik dit met een andere afbeelding.

Trackbacks & Pings

  1. Unix-quine at QED on 05 Feb 2008 at 1:25 pm

    [...] Zopas vond ik nog een leuk voorbeeld van een quine, een computerprogramma dat zijn eigen broncode als uitvoer geeft. Het gaat om het volgende eenvoudige Unix shell-script: [...]

Post a Comment

Your email is never published nor shared. Required fields are marked *

*

*