czwartek, 3 maja 2012

Artoooooor, Dziennik Superbohatera, 3.05.2012, czwartek

Po pierwsze – przepraszam za mega-przerwę we wpisach. Ostatnio trwa batalia ze strasznym Lordem NP-Trudnym, który chce sformatować świat i opanować wszystkie partycje. Ale po kolei...

Obudziłem się jak zwykle w Twierdzy Pętli. Dzień był wyjątkowo piękny – słońce świeciło (chyba AstroGirl już je naprawiła), ptaszki ćwierkały, programy się kompilowały*, a na mnie czekała kanapka z pomidorem i moim ulubionym sosem Hamminga*. Już miałem zabrać się za jedzenie danych wejściowych, kiedy dostałem info od mojego super-tajnego informatora Zająca „Terminatora” Poziomki o kolejnym Złym Ktosiu. Wiadomość brzmiała groźnie, Wam też ją przytoczę:

Rozpierducha w zamku STOP Lord NP-Trudny podbija świat STOP Domagam się podwyżki STOP

To ostatnie zdanie aż mrozi krew w żyłach, prawda? Poza tym...jakiś lord NP-Trudny podbija świat i co gorsza, nie daje mi dokończyć śniadania! No tak, ale genialny Poziomka zapomniał podać, gdzie właściwie ten Lord się znajduje (ani nawet gdzie mam szukać samego Poziomki). Zrezygnowany już miałem odpalić Super-Robota typu „Znajdź i Rozśmiesz” (potrafi namierzyć, a potem sparaliżować śmiechem dowolny cel w ciągu 5 sekund). Nagle przez moje okno (czemu nigdy go nie zamykam?) wleciała sowa, zostawiła kopertę i wyleciała. Koperta wybuchła i wyrzuciła z siebie mnóstwo karteczek...na jednej było napisane „Jestem Lord NP-Trudny i nigdy mnie nie pokonasz”, na drugiej „Czekam w Wykładniczym Zamku, w Krainie NP*”, na trzeciej „Przestań się tak gapić, sowa już poleciała!”.

W te pędy ubrałem zbroję (zwykli śmiertelnicy widzą ją jako koszulę w kratę, ale to Zbroja Informatyka) wyskoczyłem z zamku...a raczej próbowałem wyskoczyć, bo zamiast w drzwi <ŁUP> trafiłem w ścianę. Ekhm, wypadek przy pracy, poprawiłem kierunek i wyskoczyłem z <ŁUP>. W końcu ktoś mi powiedział dość nieśmiało „Ppppanie, ale drzwi są z drugiej strony...”.Tym razem POWOLI wyszedłem z zamku, potem, kiedy upewniłem się, że nie ma żadnych ścian (ani drzwi) po drodze, ruszyłem z kopyta. 537 ms później byłem w miejscu, w którym Ziemie Afiniczne graniczą z Krainą NP.

Szybko znalazłem Wykładniczy Zamek...a raczej Zamczysko. Miało kształt jednolitej bryły z ciemnego kamienia. Z daleka wyglądał jak linia opisana wzorem y=2^x. Czyli żeby przynieść Lordowi posiłek służba musiała przejść 2^n metrów w górę przy zamku o długości n, straszne! Najpierw postanowiłem zrobić krótki rekonesans. Podleciałem pod jedno z okien i usłyszałem w środku głos:
- Dzięki opracowanym przeze mnie ananasom NP-trudnym świat będzie mój! Sformatuję państwa i opanuję partycje! Trzeba tylko więcej ANANASów! Hahahahaha!

O co chodzi z tymi ananasami? Nieważne, trzeba było działać! Wleciałem z impetem do sali krzycząc „mówi się ‘ananasów’! Stań do walki! A sowa do przesyłania wiadomości jest już oklepana!”. Przetoczyłem się po podłodze unikając wyjątków, które zapewne już rzucił w moją stronę, wyciągnąłem debugger gun i wystrzeliłem breakpointa*. Ale Lorda NP-Trudnego tam nie było...za to byli ludzie bardzo zdziwieni tym, że ktoś wpada i atakuje telewizor, w którym leciało jego przemowienie. Pies w panice wbiegł prosto w breakpointa i zatrzymał się. Jego właściciele zdębieli i bez tego.
-Eeee, no cóż, przepraszam za kłopoty(zasłoniłem rozbity telewizor)...a gdzie znajdę samego Lorda?
-W sąsiednim zamku, proszę pana...a nie, ćśśśś...mamy bezpośrednią relację z ataku na Twierdzę Krzyżówek! Chce wyzwać na pojedynek jakiegoś SuperInformatyka...

Pomyślałem, że obejrzę, ale zapomniałem, że telewizor jest rozbity. Zaraz, skoro ja jestem tu, a mojej twierdzy nie ma kto bronić, to moja twierdza może przestac być moją twierdzą...512 ms później byłem na miejscu. Niby nic się nie zmieniło – twierdza stała tak, jak wcześniej, nawet z moją flagą nic się nie stało.
-Chciałeś walki, więc jestem, wyłaź, fork!* - zakląłem
- Znowu się spotykamy ha– powiedział i powtórzył ‘ha’ jeszcze 2^n razy – Jestem Lord NP-Trudny, A NA NAS dwóch ta twierdza jest za mała. Mówiąc to wyszedł zza muru, wyciągnął ananasa i rzucił z odległości k. Nic trudnego – wystrzeliłem breakpointa, na którym pocisk się zatrzymał (widzieliście ananasa lewitującego w powietrzu?). Podejrzałem i zmodyfikowałem wartość składowej „smak” na „grejpfrutowy”, „masa” na „30 ton” i „kierunek” na przeciwny. Puściłem Wszechświat dalej – wtedy ananas poleciał w stronę właściciela i razem z nim przebił mur. Wrócił szybko (z połową ananasa na głowie) krzywiąc się (bo nie lubi grejpfrutów).
-Jestem Lord NP-Trudny (odrzucił ananasa z głowy)...eee...i nie pokonasz mnie. Otóż działam na niedeterministycznej maszynie Turinga* i dzięki temu mogę być w wielu miejscach na raz i podejmować wiele decyzji na raz.

Dookoła mnie stało 4 Lordów NP-trudnych, z których każdy rzucił ananasem. Podskoczyłem, strzeliłem 4 breakpointami, ale...w każdej sekundzie każdy Lord NP-Trudny dzielił się na 2 Lordów, a każdy ananas (czy już raczej Ananas) dzielił się na 2 Ananasy. Mogłem tylko się uchylic i wykorzystać fakt, że każdy Lord rzuca w kierunku obszaru pamięci zajmowanej przez drugiego Lorda...połowa Ananasów trafiła w Lordów, a ja ukryłem się przed kolejnymi za stojącą obok dużą tablicą int blabla[5000][50]*.

-Co to jest za tablica? Ten początek...zaraz, to nagłówek pliku mp3! AIMP*, chodź tu! (zagwizdałem) Bierz tą smaczną tablicę!
Z zamku przybiegł piesek AIMP, który lubi aportować i odtwarzać pliki MP3. Zaszczekał i Z /dev/audio zaczęły wydobywać się dźwięki piosenki „Piece by Piece” Katie Melua. Wyjrzałem zza tablicy...Lord NP-Trudny słysząc to odpłynął, ja za chwilę też. AIMP warknął i oprzytomniałem. Wziąłem jeden z leżących Ananasów i rzuciłem w skrzynkę plecach Lorda, podpisaną „Niedeterministyczna maszyna Turinga”. Skrzynka odpadła, wszystkie kopie Lorda zniknęły, a on sam uciekł mówiąc „Twierdza krzyżówek jeszcze będzie moja!”.A ja zabrałem się za porządkowanie pobojowiska (i nakazałem AIMPowi przyniesienie całej reszty albumu). Ananasy NP-trudne zachowaliśmy, a za każdym razem, kiedy się takim rzuci, ten rozdziela się na 2 – czyli jedzenia już w Afinicznym Królestwie nie zabraknie!
Piosenka, która pokonała Lorda:

*kompilacja - program napisany w jednym języku musi i tak być przetworzony na język, który komputer zrozumie, zanim zostanie uruchomione. To jest właśnie kompilacja.
*kod Hamminga - dodatkowe dane dodawane do wiadomości, które pozwalają skorygować ją przy niewielkim przekłamaniu. Hamming był po prostu wkurzony, że przez zawodny czytnik taśm perforowanych jego programów często nie udawało się uruchomić, więc opracował metodę korekcji takich małych błędów.
*breakpoint - jeżeli chcemy zatrzymać program w jakimś miejscu i np. podejrzeć, co z nim wtedy dzieje się nie tak, ustawiamy breakpointa. Kiedy program na niego trafi, zatrzymuje się, a my możemy zobaczyć (a czasami i zmienić w locie) wartości zmiennych.
*deterministyczna maszyna Turinga - abstrakcyjny model komputera...w każdym kroku czyta znak z taśmy, przesuwa się w lewo lub w prawo i zapisuje znak na taśmę.
*niedeterministyczna maszyna Turinga - jeszcze bardziej abstrakcyjny model komputera. Wyobraźcie sobie, że w jednym kroku taki potworek potrafi się rozdwoić i np. zapisać w to samo miejsce 2 różne znaki. Albo przesunąć się w lewo i w prawo jednocześnie.
*NP - problemy, które na niedeterministycznej maszynie turninga wykonają się w czasie wielomianowym...po ludzku - dość szybko. Na deterministycznej już w czasie wykładniczym - czyli masakra.
*fork - funkcja służąca do rozdzielania programu na 2 wykonujące się jednocześnie, albo staroinformatyczne przekleństwo.*int - liczba całkowita. int blabla[5000][50] oznacza 5000 rządków po 50 takich liczb całkowitych obok siebie.
*AIMP - odtwarzacz muzyki na systemy Windows

EDIT:skróciłem nieco widoczną część.

6 komentarzy:

  1. XD
    A taka niedeterministyczna maszyna Turinga przydałaby ci się do odnajdywania drzwi w ścianie.
    (Nawiasem mówiąc: co to za gość pomógł ci przy wychodzeniu..?)
    I myślałam, że to sowa wybuchnie, a nie koperta.

    OdpowiedzUsuń
    Odpowiedzi
    1. No widzisz, ja też tak myślałem - lord NP-Trudny jest 2^n razy przebieglejszy, niż myślimy!
      A gdybym użył niedeterministycznej maszyny Turinga, to jednocześnie walczyłbym z Lordem i szukałbym tych diabelnych drzwi - myślisz, że ściana by to wytrzymała? A jak zacząłbym się sam ze sobą kłócić, bo jednocześnie twierdziłbym, że ściana jest z lewej i prawej strony? Poza tym maszyna się zepsuła po oberwaniu NP-trudnym ananasem :/

      Usuń
  2. Zaczynam się bać ananasów. Poważnie. xD

    OdpowiedzUsuń
    Odpowiedzi
    1. Ciiiii! Bo zacznie opowiadać o strusiach i gołębiach!

      Usuń
    2. ale tak naprawdę to złe pingwiny są naprawdę złe

      Usuń
  3. Ananas!
    Żartowałem
    @Astroni - nie martw się, znajomy struś pozostał po naszej, Jasnej Stronie Ogródka

    OdpowiedzUsuń