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 hozzászólás

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.

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);}

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 🙂

proto-n

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

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 🙂

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