Wzór na wszystko (wzór Tuppera) – rysowanie i obliczanie

Poniższa nierówność zawiera w sobie wszystko:

Tuppers_formula

gdzie ⌊ • ⌋ oznacza funkcję podłoga, a mod to operacja modulo.

Jest to wzór Tuppera, wymyślony przez Jeffa Tuppera – i mówiąc w skrócie – wykres tej nierówności zawiera wszystkie możliwe obrazy o wymiarach 106 x 17 pikseli, w tym także zapis samej funkcji.

Po obejrzeniu na kanale Numberphile odcinka pt. The 'Everything’ Formula (poświęconego wspomnianemu wzorowi), napisałem na szybko skrypt JS dokonujący konwersji wykresu na odpowiednią liczbę (współrzędną Y lewego dolnego narożnika obrazka) i w drugą stronę – rysujący wycinek wykresu dla podanej liczby. Pewnie powinienem tylko lepiej poszukać i skorzystać z gotowej biblioteki do obsługi wielkich liczb, zamiast „odkrywać koło na nowo”, ale pierwsza, którą przetestowałem nie radziła sobie z tak dużymi liczbami – więc na szybko stworzyłem coś sam (zwłaszcza, że już kiedyś pisałem coś podobnego na laborkach z  C++). Kod miał być tylko dla mnie, więc może być dość niechlujny, wszystko nieładnie upchane w jednym pliku, w pokaleczonym HTML5 – ale po dodaniu paru dodatkowych funkcji wynik mi się na tyle spodobał, że go tu opublikuje 🙂

takitamblog.tk/skrypty/Tupper/

Albo:

http://tuppers-formula.tk
https://tuppers-formula.ovh

Ponieważ wszystko (oprócz innych wersji językowych) jest w jednym pliku i działa po stronie klienta (w przeglądarce), to można sobie pobrać plik *.html i korzystać w razie potrzeby z całości również w trybie offline.

W wolnej chwili może jeszcze tylko poprawię rysowanie z dokładnym wyliczaniem wartości – bo nie powinno to trwać dłużej niż kilkanaście sekund.