Return to Video

Otchłań | Myśl jak programista, odc.6

  • 0:22 - 0:27
    Etyka, Hedge i Octavia
    stoją na skraju jaru bez dna.
  • 0:27 - 0:29
    To jedyne, co dzieli ich od wieży,
  • 0:29 - 0:33
    która mieści drugi z trzech
    potężnych artefaktów.
  • 0:33 - 0:38
    Mają tylko chwilę, by do niej dotrzeć
    przed powrotem straży.
  • 0:38 - 0:43
    Z prawie pustym zbiornikiem paliwa Hedge
    nie może zabrać Etyki na drugą stronę,
  • 0:43 - 0:46
    jedyną opcją jest budowa mostu.
  • 0:46 - 0:51
    Na szczęście unoszące się nieopodal
    stosy kamieni to elementy mostu.
  • 0:51 - 0:55
    Wynalazła je Octavia
    i nazwała wiszącymi kamieniami.
  • 0:55 - 0:57
    Stos aktywuje się za pomocą energii,
  • 0:57 - 1:02
    a elementy same ułożą się nad jarem
    z każdym krokiem Etyki.
  • 1:02 - 1:06
    Jest oczywiście pewien haczyk.
  • 1:06 - 1:10
    Wiszące kamienie są stabilne jedynie,
    gdy są całkowicie symetryczne.
  • 1:10 - 1:13
    Co oznacza, że muszą stworzyć sekwencję,
  • 1:13 - 1:17
    która jest taka sama z przodu i z tyłu.
  • 1:17 - 1:19
    Pierwszy blok ze sterty jest losowy,
  • 1:19 - 1:23
    ale kolejne nakładają się na siebie,
    zachowując układ palindromu
  • 1:23 - 1:24
    jeśli się da.
  • 1:24 - 1:27
    Jeśli dotrą tam, gdzie palindrom
    nie jest możliwy,
  • 1:27 - 1:28
    most się zawali,
  • 1:28 - 1:32
    a ten, kto na nim stoi, spadnie do jaru.
  • 1:32 - 1:33
    Spójrzmy na przykład.
  • 1:33 - 1:36
    Ten stos stałby się stabilny.
  • 1:36 - 1:39
    Najpierw pozycję zajmują bloki A.
  • 1:39 - 1:40
    Potem B.
  • 1:40 - 1:44
    Na końcu blok C
    usadowiłby się pomiędzy dwoma B.
  • 1:44 - 1:47
    Załóżmy jednak,
    że jest jeszcze jeden blok A.
  • 1:47 - 1:50
    Najpierw rozkładają się
    dwa bloki A, potem B,
  • 1:50 - 1:54
    ale w ten sposób bloki A i C
    nie mają gdzie się podziać,
  • 1:54 - 1:56
    więc całość się rozpada.
  • 1:56 - 2:01
    Dzięki Węzłowi Mocy Hedge
    może aktywować pojedynczy stos bloków.
  • 2:01 - 2:05
    Jaką instrukcję powinna dać Etyka,
    by Hedge sprawnie odnalazł
  • 2:05 - 2:08
    i uruchomił stabilny stos palindromiczny?
  • 2:08 - 2:18
    Zatrzymaj, by znaleźć rozwiązanie.
  • 2:18 - 2:24
    Przykłady palindromów to ANNA,
    RACECAR czy MADAM IM ADAM.
  • 2:24 - 2:27
    Liczenie, jak często dana litera
    pojawia się w palindromie,
  • 2:27 - 2:30
    ujawni przydatny wzorzec.
  • 2:30 - 2:35
    Zatrzymaj, by znaleźć rozwiązanie.
  • 2:35 - 2:38
    Spróbujmy najpierw rozwiązania naiwnego.
  • 2:38 - 2:43
    Rozwiązanie naiwne to podejście proste,
    "na siłę", które nie jest zoptymalizowane,
  • 2:43 - 2:45
    ale wykona zadanie.
  • 2:45 - 2:48
    Rozwiązania naiwne przydają się
    do analizowania problemu
  • 2:48 - 2:52
    i jako podwaliny dla lepszych rozwiązań.
  • 2:52 - 2:56
    W tym przypadku naiwnym rozwiązaniem
    jest budowa stosu bloków
  • 2:56 - 2:58
    i próba wszystkich możliwych kombinacji,
  • 2:58 - 3:02
    by znaleźć palindrom
    czytając każdą wprzód i w tył.
  • 3:02 - 3:03
    Niestety to podejście
  • 3:03 - 3:06
    zajęłoby ogromnie dużo czasu.
  • 3:06 - 3:09
    Gdyby Hedge próbował
    jednej kombinacji na sekundę,
  • 3:09 - 3:14
    stos zaledwie 10 różnych bloków
    zająłby mu 42 dni.
  • 3:14 - 3:18
    To dlatego, że całkowity czas to silnia
  • 3:18 - 3:20
    liczby dostępnych bloków.
  • 3:20 - 3:23
    10 bloków to ponad 3 miliony kombinacji.
  • 3:23 - 3:28
    Rozwiązanie naiwne pokazuje,
    że potrzeba znacznie szybszego sposobu,
  • 3:28 - 3:31
    by sprawdzić czy dany stos może
    utworzyć palindrom.
  • 3:31 - 3:36
    Po pierwsze, intuicja podpowiada,
    że stos 10 różnych bloków
  • 3:36 - 3:37
    nigdy nie utworzy palindromu.
  • 3:37 - 3:38
    Dlaczego?
  • 3:38 - 3:41
    Pierwszy i ostatni blok
    nie będą identyczne,
  • 3:41 - 3:43
    jeśli nie ma dwóch takich samych bloków.
  • 3:43 - 3:48
    Kiedy więc dana sekwencja
    utworzy palindrom?
  • 3:48 - 3:53
    Jednym ze sposobów, by to ustalić
    jest analiza istniejących palindromów.
  • 3:53 - 3:56
    W ANNA są 2 A, 2 N.
  • 3:56 - 4:01
    W słowie RACECAR mamy 2 R, 2 A, 2C i 1 E.
  • 4:01 - 4:08
    Zwrot MADAM IM ADAM
    ma 4 M, 4 A, 2 D i 1 I.
  • 4:08 - 4:11
    Schemat ten pokazuje,
    że większość liter pojawia się
  • 4:11 - 4:13
    parzystą liczbę razy
  • 4:13 - 4:16
    i najwyżej 1 pojawia się tylko raz.
  • 4:16 - 4:17
    Czy to wystarczy?
  • 4:17 - 4:20
    Co by było gdyby słowo RACECAR
    miało 3 E zamiast 1?
  • 4:20 - 4:24
    Można by dodać E na każdym z końców
    i nadal utworzyć palindrom,
  • 4:24 - 4:26
    więc 3 jest ok.
  • 4:26 - 4:32
    Ale jeśli będziemy mieć 3 E i 3 C,
    ostatnie C nie będzie miało miejsca.
  • 4:32 - 4:35
    Tak więc, uogólniając,
  • 4:35 - 4:39
    najwyżej jedna litera może pojawić się
    nieparzystą ilość razy,
  • 4:39 - 4:42
    reszta musi być parzysta.
  • 4:42 - 4:46
    Hedge może policzyć litery w każdym stosie
    i uporządkować je w słownik,
  • 4:46 - 4:49
    co jest schludną metodą
    przechowywania informacji.
  • 4:49 - 4:53
    Za pomocą pętli można policzyć
    ile razy pojawia się nieparzysta liczba.
  • 4:53 - 4:59
    Jeśli są mniej niż 2 nieparzyste liczby,
    stos może stworzyć palindrom.
  • 4:59 - 5:03
    To podejście jest znacznie szybsze,
    niż rozwiązanie naiwne.
  • 5:03 - 5:06
    Zamiast złożoności typu silnia,
    mamy złożoność liniową.
  • 5:06 - 5:08
    Czasu przybywa
  • 5:08 - 5:10
    proporcjonalnie do liczby bloków,
    którymi dysponujemy.
  • 5:10 - 5:14
    Wystarczy napisać pętlę, dzięki której
    Hedge podejdzie do każdego stosu osobno
  • 5:14 - 5:19
    i zatrzyma się, gdy znajdzie właściwy.
  • 5:19 - 5:20
    Oto, co się dzieje:
  • 5:20 - 5:24
    Hedge jest szybki, ale taka liczba
    stosów zabiera dużo czasu.
  • 5:24 - 5:25
    Za dużo.
  • 6:18 - 6:20
    Etyka i Hedge są bezpieczni.
  • 6:20 - 6:22
    Ale Octavia nie ma tyle szczęścia.
Title:
Otchłań | Myśl jak programista, odc.6
Speaker:
Alex Rosenthal
Description:

Cała lekcja dostępna tutaj: https://ed.ted.com/lessons/the-chasm-think-like-a-coder-ep-6

To szósty odcinek naszej animowanej serii „Myśl jak programista".
Ta 10-odcinkowa historia pokazuje losy dziewczyny o imieniu Etyka
i towarzyszącego jej robota, Hedga. Razem próbują uratować świat. Wyruszają na wyprawę, by zebrać trzy artefakty. Po drodze muszą jednak rozwiązać serię programistycznych zagadek.

Lekcja: Alexa Rosenthala, reżyseria: Kozmonot Animation Studio.

more » « less
Video Language:
English
Team:
closed TED
Project:
TED-Ed
Duration:
06:24

Polish subtitles

Revisions Compare revisions