Tupper’s Self-Referential Formula

Mindenféle bevezető nélkül:

Vagyis ha ábrázoljuk ezt a függvényt egyenlőtlenséget a megadott értékek közt, akkor pontosan saját magát fogja kirajzolni, ennek a képe a pixeles ábra fenn. (Szerintem egyébként úgy működik, hogy ez a bazi nagy szám “tárolja” el a pixel információkat, amit a függvény csak ügyesen “kiszed” és felrajzol. Ebben az értelemben bármilyen egyszerűbb szöveget ki lehet rajzoltatni vele, ha “n” értéket megfelelő módon választjuk meg.)

Eredetileg a Wolfram Mathworld-ön jelent meg ebben a formában, én Zsoltika blogján akadtam rá. Megpróbáltam persze lefuttatni a függvényt a Mathematica player segítségével, de nem tudtam elindítani az ábrázolást. Help meg nem volt hozzá, nem tudja valaki, hogyan kell megcsinálni?

update: JavaScript implementáció erre.

24 Responses to “Tupper’s Self-Referential Formula”

  1. Gravatar Icon 0 Zsoltik@

    (OMG, híres lettem ;-) )

    Itt megtalálható javascriptben implementálva is: http://web.aanet.com.au/superseed/ajmcrae/TupperPlot/TupperPlot.html

  2. Gravatar Icon 1 Zsoltik@

    És még lehet az is, hogy azért nem lehet lejátszani az .nb-t, mert a gyík szerint:

    I’ve opened a notebook, but the interactive elements don’t work–they’re either gray boxes or images of the applet. What’s wrong?
    The author of your notebook hasn’t converted it to be interactive in Player (technically it’s a .nb file, not a .nbp file). Open it in Player Pro or Mathematica–or contact the author to suggest converting the notebook using the online Player conversion service. You can do this conversion yourself provided that the notebook’s content does not infringe upon any copyright or other proprietary right of any party.
    For detailed differences between Player, Player Pro, and Mathematica, view the comparison chart. You can purchase Player Pro or Mathematica in our web store.

  3. Gravatar Icon 2 szaboat
  4. Gravatar Icon 3 rog

    ez ugrott be:

    main(t,_,a)
    char *a;
    {return!0<t?t<3?main(-79,-13,a+main(-87,1-_,
    main(-86, 0, a+1 )+a)):1,t<_?main(t+1, _, a ):3,main ( -94, -27+t, a
    )&&t == 2 ?_<13 ?main ( 2, _+1, "%s %d %d\n" ):9:16:t<0?t<-72?main(_,
    t,"@n'+,#'/*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l,+,/n{n+\
    ,/+#n+,/#;#q#n+,/+k#;*+,/'r :'d*'3,}{w+K w'K:'+}e#';dq#'l q#'+d'K#!/\
    +k#;q#'r}eKK#}w'r}eKK{nl]'/#;#q#n'){)#}w'){){nl]'/+#n';d}rw' i;# ){n\
    l]!/n{n#'; r{#w'r nc{nl]'/#{l,+'K {rw' iK{;[{nl]'/w#q#\
    n'wk nw' iwk{KK{nl]!/w{%'l##w#' i; :{nl]'/*{q#'ld;r'}{nlwb!/*de}'c \
    ;;{nl'-{}rw]'/+,}##'*}#nc,',#nw]'/+kd'+e}+;\
    #'rdq#w! nr'/ ') }+}{rl#'{n' ')# }'+}##(!!/")
    :t<-50?_==*a ?putchar(a[31]):main(-65,_,a+1):main((*a == '/')+t,_,a\
    +1 ):0<t?main ( 2, 2 , "%s"):*a=='/'||main(0,main(-61,*a, "!ek;dc \
    i@bK'(q)-[w]*%n+r3#l,{}:\nuwloca-O;m .vpbks,fxntdCeghiry"),a+1);}

  5. Gravatar Icon 4 Zsoltik@

    Nekem meg ez, még ha nem teljesen releváns is, de valahogy mégis az:
    http://search.cpan.org/~asavige/Acme-EyeDrops-1.55/lib/Acme/EyeDrops.pm#A_Somersaulting_Camel

  6. Gravatar Icon 5 angelday

    Camel nagyon durva!

  7. Gravatar Icon 6 angelday

    rog cucca egyébként egy 1988-as “compó” győztese: “Although unintelligible at first glance, it is a legal C program that when compiled and run will generate the 12 verses of The 12 Days of Christmas.”

  8. Gravatar Icon 7 rog

    találtam egy ilyent is:
    http://udel.edu/~mm/xmas/
    (nem is tudom melyikük a közveszélyesebb, az aki az eredetit írta, vagy az aki aztán visszafejtette.. :) )

  9. Gravatar Icon 8 Zsoltik@

    Igen a Camel is nagyon durva, de az igaz felette nem sokkal Larry Wall az’szem a History of Perl 6 résznél… és hát obfuscated kódnál kevés relevánsabb nyelv van a perl-nél :-)

  10. Gravatar Icon 9 angelday

    A camel hogy működik?

  11. Gravatar Icon 10 angelday

    Nem fut, hm:

    jozsimbp:~/Desktop angelday$ perl gencamel.pl
    Can’t find string terminator “END_SRC_STR” anywhere before EOF at gencamel.pl line 7.

  12. Gravatar Icon 11 proto-n

    nem akarok kötöszködni, de mintha nem függvény hanem egyenlőtlenség lenne a fenti formula

  13. Gravatar Icon 12 angelday

    Igen, ez valóban pongyolaság, javítottam is!

  14. Gravatar Icon 13 Zsoltik@

    Az utolsó sorban nincs véletlen szóköz az END_SRC_STR előtt?

  15. Gravatar Icon 14 angelday

    De volt, kitöröltem, de úgy is ugyanaz.

  16. Gravatar Icon 15 angelday

    Aha, ezzel már közelebb jutottam!

    http://screencast.com/t/YTVlNWZl

    Hiba: Undefined subroutine &main::sightly called at gencamel.pl line 1.

  17. Gravatar Icon 16 Zsoltik@

    Másrészt:

    $ cpan Acme::EyeDrops

    $ cat >hello.pl < cnv.pl < ‘camel’,
    SourceFile => ‘hello.pl’,
    Regex => 1 } );
    EOF
    $ perl cnv.pl
    … (vicces teve)
    $ perl cnv.pl > tmp.pl
    $ perl tmp.pl
    helló józsi :-)

  18. Gravatar Icon 17 Zsoltik@

    Most miért nem lehet a hülye kisebb nagyobb jeleket normálisan értelmezzni prék között?!

    Szóval végigcsináltam http://search.cpan.org/~asavige/Acme-EyeDrops-1.55/lib/Acme/EyeDrops.pm#Getting_Started -et (előtte persze cpan install), és ment.

    De a gencamel is menni fog, ha ez az első sor:
    use Acme::EyeDrops qw(sightly);

    Előző komment törölhető…

  19. Gravatar Icon 18 angelday
  20. Gravatar Icon 19 Zsoltik@
  21. Gravatar Icon 20 angelday

    Ezen a ponton feladtam. :)

  22. Gravatar Icon 21 H2CO3

    bezzeg Linuxon hiba nélkül fut! :D

  23. Gravatar Icon 22 StavrosMenace
  24. Gravatar Icon 23 jtoth

    Nem értem, mi a bajotok a Mmaval.
    Letöltöttem az nb-t, futtattam Mathematicával, szépséges.
    Persze, a MmaPlayernek .nbp kell.

    J