< Return to Video

De afgrond | Denken als een programmeur, Afl. 6

  • 0:22 - 0:27
    Ethic, Hedge en Octavia
    staan op de rand van een bodemloze ravijn.
  • 0:27 - 0:29
    Het is het enige wat tussen hen
    en de toren instaat,
  • 0:29 - 0:33
    waar de tweede van de drie krachtige
    artefacten wordt ondergebracht.
  • 0:33 - 0:36
    Ze moeten in een korte tijdspanne
    naar de overkant zien te komen,
  • 0:36 - 0:38
    voordat de bewakers terugkeren.
  • 0:38 - 0:43
    Nu Hedges brandstofmeter op nul staat
    kan hij Ethic niet overvliegen
  • 0:43 - 0:46
    en dus is een brug bouwen de enige optie.
  • 0:46 - 0:51
    Gelukkig zijn de nabijgelegen zwevende
    stapels stenen delen van een brug --
  • 0:51 - 0:55
    Octavia heeft ze zelf ontworpen --
    die hoverblokken heten.
  • 0:55 - 0:58
    Activeer een stapel
    door een energiestoot af te vuren
  • 0:58 - 1:02
    en deze zal het ravijn overbruggen
    terwijl Ethic naar de overkant loopt.
  • 1:02 - 1:05
    Maar er schuilt natuurlijk
    een addertje onder het gras.
  • 1:06 - 1:10
    De hoverblokken zijn alleen stabiel
    wanneer ze perfecte palindromen zijn.
  • 1:10 - 1:13
    Dit houdt in dat ze
    een sequentie moeten vormen
  • 1:13 - 1:17
    dat van links naar rechts gezien
    hetzelfde is als van rechts naar links.
  • 1:17 - 1:19
    De stapels zijn gerangschikt
    in willekeurige volgorde,
  • 1:19 - 1:23
    maar vormen zich altijd
    tot een palindromische configuratie
  • 1:23 - 1:24
    als dit mogelijk is.
  • 1:24 - 1:27
    Als ze op een punt komen
    waar geen palindroom gevormd kan worden,
  • 1:27 - 1:28
    zal de brug ineenstorten
  • 1:28 - 1:32
    en zal degene die erop staat
    in het ravijn vallen.
  • 1:32 - 1:33
    Laten we een voorbeeld bekijken.
  • 1:33 - 1:36
    Deze stapel maakt zichzelf stabiel.
  • 1:36 - 1:39
    Eerst houden de A-blokken
    zichzelf in stand.
  • 1:39 - 1:40
    Dan de B-blokken.
  • 1:40 - 1:44
    En uiteindelijk nestelt het C-blok
    zich tussen de B-blokken.
  • 1:44 - 1:47
    Stel, er was nog een A-blok.
  • 1:47 - 1:50
    Eerst worden twee A-blokken gevormd
    en daarna twee B-blokken,
  • 1:50 - 1:54
    maar nu kunnen de overgebleven blokken
    nergens geplaatst worden,
  • 1:54 - 1:56
    dus valt het hele ding uit elkaar.
  • 1:56 - 1:58
    De Node van Macht stelt Hedge in staat
  • 1:58 - 2:01
    om een enkele stapel blokken te activeren.
  • 2:01 - 2:03
    Welke instructies
    kan Ethic aan Hedge geven
  • 2:03 - 2:05
    zodat hij efficiënt
  • 2:05 - 2:08
    een stabiele stapel palindromen
    kan vinden en aandrijven?
  • 2:08 - 2:12
    [Pauzeer nu de video
    om het zelf uit te zoeken.]
  • 2:18 - 2:23
    Voorbeelden van palindromen zijn ANNA,
    RACECAR en MADAM IM ADAM.
  • 2:24 - 2:26
    Door te tellen hoe vaak
    een bepaalde letter
  • 2:26 - 2:27
    in een palindroom voorkomt,
  • 2:27 - 2:30
    zal een nuttig patroon worden onthuld.
  • 2:30 - 2:34
    [Pauzeer nu de video
    om het zelf uit te zoeken.]
  • 2:35 - 2:38
    Laten we eerst een naïeve oplossing
    voor dit probleem bekijken.
  • 2:38 - 2:42
    Een naïeve oplossing is een eenvoudige,
    op brute kracht gebaseerde logica
  • 2:42 - 2:43
    die niet optimaal is,
  • 2:43 - 2:45
    maar wel de klus klaart.
  • 2:45 - 2:48
    Naïeve oplossingen zijn nuttige methoden
    om problemen te analyseren
  • 2:48 - 2:52
    en werken als opstap
    naar betere oplossingen.
  • 2:52 - 2:54
    De naïeve oplossing voor dit probleem
  • 2:54 - 2:57
    is een stapel blokken te benaderen,
    alle opstellingen te proberen
  • 2:57 - 3:01
    en een palindroom te zoeken door deze
    voorwaarts en achterwaarts te lezen.
  • 3:02 - 3:03
    Het probleem bij deze aanpak
  • 3:03 - 3:06
    is dat het een enorme hoeveelheid
    tijd in beslag neemt.
  • 3:06 - 3:09
    Als Hedge een combinatie
    per seconde uitprobeert
  • 3:09 - 3:11
    zal een stapel van
    tien verschillende blokken
  • 3:11 - 3:14
    hem 42 dagen kosten om af te voeren.
  • 3:14 - 3:18
    Dat komt doordat de totale tijd
    een faculteitsfunctie is
  • 3:18 - 3:20
    van het totale aantal bestaande blokken.
  • 3:20 - 3:23
    Met tien blokken kunnen er meer dan
    drie miljoen combinaties gemaakt worden.
  • 3:23 - 3:28
    Deze naïeve oplossing toont aan
    dat we een snellere methode nodig hebben
  • 3:28 - 3:31
    om te zien of een stapel blokken
    een palindroom kan vormen.
  • 3:31 - 3:36
    Om te beginnen is het intuïtief duidelijk
    dat een stapel met verschillende blokken
  • 3:36 - 3:37
    nooit een geheel zal vormen.
  • 3:37 - 3:38
    Waarom?
  • 3:38 - 3:43
    De eerste en laatste blokken kunnen niet
    hetzelfde zijn zonder herhaalde letters.
  • 3:44 - 3:47
    Wanneer kan een bepaalde sequentie
    een palindroom worden?
  • 3:48 - 3:53
    Een manier om erachter te komen is
    door bestaande palindromen te analyseren.
  • 3:53 - 3:56
    In ANNA staan twee A's en twee keer een N.
  • 3:56 - 4:01
    RACECAR heeft twee keer een R,
    twee A's, twee C's en een E.
  • 4:01 - 4:07
    En MADAM IM ADAM heeft vier keer een M,
    vier A's, twee D's en een I.
  • 4:08 - 4:10
    Het patroon hier is dat de meeste letters
  • 4:10 - 4:13
    een even aantal keer voorkomen
  • 4:13 - 4:16
    en er is hooguit een letter
    die slechts een keer voorkomt.
  • 4:16 - 4:17
    Is dat alles?
  • 4:17 - 4:20
    Wat als RACECAR drie E's heeft
    in plaats van een?
  • 4:20 - 4:24
    We kunnen de nieuwe E's aan de uiteinden
    vastmaken en toch een palindroom maken,
  • 4:24 - 4:26
    dus drie E's is goed.
  • 4:26 - 4:29
    Maar maak er drie E's en drie C's van
  • 4:29 - 4:32
    en de laatste C past nergens bij.
  • 4:32 - 4:36
    Het meest gegeneraliseerde inzicht
    is dat hoogstens een letter
  • 4:36 - 4:39
    een oneven aantal keer kan voorkomen,
  • 4:39 - 4:41
    maar de rest moet een even aantal zijn.
  • 4:42 - 4:46
    Hedge kan in elke stapel de letters tellen
    en ze ordenen tot een woordenboek,
  • 4:46 - 4:49
    zodat alle informatie
    netjes opgeslagen wordt.
  • 4:49 - 4:53
    Een loop zal alles doorlopen
    en het aantal oneven getallen tellen.
  • 4:54 - 4:56
    Als er minder dan twee oneven tekens zijn
  • 4:56 - 4:59
    kan de stapel omgebouwd worden
    tot een palindroom.
  • 4:59 - 5:03
    Deze aanpak werkt veel sneller
    dan de naïeve oplossing.
  • 5:03 - 5:06
    In plaats van in factoriale tijd
    wordt deze in lineaire tijd uitgevoerd.
  • 5:06 - 5:10
    Dat is waar de tijd oploopt in verhouding
    tot het aantal bestaande blokken.
  • 5:10 - 5:14
    Noteer nu een loop voor Hedge
    om de stapels een voor een te benaderen,
  • 5:14 - 5:19
    stop wanneer hij een goede gevonden heeft
    en je bent klaar om te gaan.
  • 5:19 - 5:20
    Dit is wat er gebeurt:
  • 5:20 - 5:24
    Hedge is snel, maar er zijn veel stapels
    waardoor het proces hem veel tijd kost.
  • 5:24 - 5:25
    Teveel tijd.
  • 6:18 - 6:20
    Ethic en Hedge zijn veilig aangekomen.
  • 6:20 - 6:22
    Maar Octavia heeft minder geluk.
Title:
De afgrond | Denken als een programmeur, Afl. 6
Speaker:
Alex Rosenthal
Description:

Bekijk de volledige les: https://ed.ted.com/lessons/the-chasm-think-like-a-coder-ep-6

Dit is aflevering zes van onze animatieserie 'Denken als een programmeur.' Dit tiendelige verhaal gaat over een meisje genaamd Ethic dat met haar robotmaatje Hedge de wereld probeert te redden. De twee beginnen hun zoektocht naar drie artefacten en zullen een weg moeten banen door een reeks programmeerpuzzels.

Les door Alex Rosenthal, geregisseerd door Kozmonot Animation Studio.

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

Dutch subtitles

Revisions