Return to Video

A Torre da Epifania | Pense Como um Programador, Episódio 7

  • 0:32 - 0:36
    Ethic e Hedge estão no andar térreo
    de uma imensa torre.
  • 0:37 - 0:42
    Barreiras de energia os separam
    do alvo da segunda busca deles:
  • 0:42 - 0:44
    o "Node da Criação".
  • 0:53 - 0:54
    Para chegar até ele,
  • 0:54 - 0:57
    Ethic deve usar três correntes
    de energia para escalar a torre.
  • 0:57 - 1:03
    Assim que ela avançar, uma contagem
    regressiva de 60 segundos terá início.
  • 1:07 - 1:12
    Atrás da sala, há um reservatório
    feito de torres invisíveis
  • 1:12 - 1:15
    que podem reter energia entre elas.
  • 1:15 - 1:19
    Depois de um minuto,
    uma cascata de energia descerá,
  • 1:19 - 1:22
    preenchendo uma unidade de cada vez,
    com um campo de força
  • 1:22 - 1:25
    que impede a dissipação da energia
    para frente ou para trás.
  • 1:25 - 1:28
    Durante 60 segundos de silêncio,
  • 1:28 - 1:33
    Ethic e Hedge devem decidir exatamente
    quantas unidades de energia descerão.
  • 1:33 - 1:34
    Para cada um dos três desafios,
  • 1:34 - 1:38
    eles devem escolher a quantidade exata
    que preencherá o reservatório.
  • 1:38 - 1:42
    Se fizerem assim, a energia
    os impulsionará para cima.
  • 1:42 - 1:47
    Mas se eles usarem a quantidade errada,
    o "elevador de energia" não funcionará,
  • 1:47 - 1:48
    fazendo com que eles caiam.
  • 1:48 - 1:51
    Diagramas nas paredes
    ilustram alguns exemplos.
  • 1:51 - 1:56
    Esta configuração capturará
    exatamente duas unidades de energia.
  • 1:56 - 2:01
    Esta configuração capturará quatro
    unidades: três aqui e uma aqui.
  • 2:01 - 2:03
    E esta aqui também capturará
    quatro unidades,
  • 2:03 - 2:07
    porque qualquer energia
    à direita se dissiparia.
  • 2:07 - 2:09
    A energia descerá de tal maneira
  • 2:09 - 2:14
    que somente transbordará
    se não houver espaço para retê-la.
  • 2:14 - 2:19
    Hedge pode fazer uma torre de blocos
    visíveis de cada vez e calcular a altura,
  • 2:19 - 2:23
    mas não consegue olhar
    para a estrutura toda de uma só vez.
  • 2:23 - 2:26
    Como será que Ethic pode programar
    Hedge para que ele descubra
  • 2:26 - 2:29
    a quantidade exata de energia
    que cada reservatório pode reter?
  • 2:29 - 2:33
    Um pausa agora
    para que você descubra sozinho.
  • 2:34 - 2:39
    [Regra 1] [Regra 2]
  • 2:39 - 2:42
    Eis uma maneira de pensar
    sobre o que está acontecendo:
  • 2:42 - 2:45
    cada célula vazia reterá energia
  • 2:45 - 2:49
    somente se houver
    uma parede à sua esquerda
  • 2:49 - 2:51
    e uma parede à direita.
  • 2:52 - 2:56
    Mas levaria muito tempo para que Hedge
    verificasse isso para cada célula.
  • 2:56 - 3:01
    Então, e se ele verificasse uma coluna
    inteira de blocos de cada vez?
  • 3:01 - 3:05
    Por exemplo, quantas unidades
    de energia ela pode armazenar?
  • 3:05 - 3:10
    [Uma pausa agora
    para que você descubra sozinho.]
  • 3:10 - 3:14
    Vamos analisar o problema
    olhando para o nosso exemplo.
  • 3:14 - 3:16
    Há cinco colunas de blocos aqui.
  • 3:16 - 3:19
    A da esquerda não pode reter
    qualquer quantidade de energia,
  • 3:19 - 3:20
    pois não há nada mais alto.
  • 3:20 - 3:23
    A segunda coluna pode ter
    três unidades acima,
  • 3:23 - 3:27
    já que elas ficariam presas
    entre estas duas colunas de quatro blocos.
  • 3:27 - 3:30
    Temos três unidades ao calcular a altura
  • 3:30 - 3:32
    na qual a energia se nivelaria,
    ou seja, quatro,
  • 3:32 - 3:36
    e subtraindo a altura da coluna,
    então quatro menos um.
  • 3:36 - 3:38
    A terceira coluna é parecida:
  • 3:38 - 3:42
    quatro à esquerda, quatro à direita
    e tem três blocos de altura.
  • 3:42 - 3:46
    Ou seja, ela reterá quatro menos três,
    que é igual a uma unidade.
  • 3:47 - 3:51
    A quarta e a quinta colunas
    não têm nada mais alto à direita,
  • 3:51 - 3:53
    então elas podem reter qualquer energia.
  • 3:53 - 3:57
    Podemos adaptar essa ideia
    para um algoritmo.
  • 3:57 - 4:01
    Considerando uma coluna de cada vez
    como o ponto de referência,
  • 4:01 - 4:04
    Hedge pode olhar para a esquerda,
    coluna por coluna,
  • 4:04 - 4:08
    para descobrir quanto mede a mais alta,
    olhar para a direita e fazer o mesmo,
  • 4:08 - 4:13
    e usar a menor das duas como a altura
    a ser preenchida por energia.
  • 4:13 - 4:16
    Se o resultado for maior
    que a coluna em questão,
  • 4:16 - 4:19
    subtraia a altura da coluna original,
  • 4:19 - 4:23
    e o resultado será o número
    de unidades que a coluna pode reter.
  • 4:24 - 4:27
    Se for igual ou abaixo do nível
    da coluna em questão,
  • 4:27 - 4:29
    a energia transbordará.
  • 4:29 - 4:33
    Hedge pode usar um loop para aplicar
    isso a um reservatório inteiro,
  • 4:33 - 4:35
    que se inicia na coluna à esquerda,
  • 4:35 - 4:38
    e se move para a direita,
    uma coluna por vez.
  • 4:39 - 4:42
    Para cada coluna, ele seguirá
    os mesmos passos:
  • 4:42 - 4:45
    procurar pela mais alta à esquerda,
    fazer o mesmo à direita,
  • 4:45 - 4:49
    calcular a menor das duas,
    subtrair a altura da coluna original
  • 4:49 - 4:53
    e aumentar o total geral
    se o número for positivo.
  • 4:53 - 4:57
    O loop se repetirá
    conforme o número de colunas.
  • 4:57 - 5:01
    Isso funcionará, mas levará muito tempo
    para verificar um reservatório grande.
  • 5:01 - 5:05
    A cada passo, Hedge repete a ação
    de olhar à esquerda e à direita.
  • 5:05 - 5:10
    Se houver colunas N,
    ele deverá olhar para todas elas, N vezes.
  • 5:10 - 5:12
    Há um modo mais rápido?
  • 5:12 - 5:14
    Eis como economizar tempo:
  • 5:14 - 5:17
    antes de fazer qualquer coisa,
    Hedge pode começar à esquerda
  • 5:17 - 5:21
    e manter um registro
    de qual coluna é a mais alta.
  • 5:21 - 5:25
    Aqui, seriam dois, novamente dois,
    já que a primeira coluna era mais alta,
  • 5:25 - 5:28
    então quatro, quatro, quatro.
  • 5:28 - 5:31
    Assim, ele pode encontrar
    as colunas mais altas à direita
  • 5:31 - 5:33
    fazendo o mesmo,
    movendo-se da direita à esquerda:
  • 5:33 - 5:37
    um, três, quatro, quatro, quatro.
  • 5:37 - 5:41
    Por fim, ele terá na memória
    uma tabela como esta.
  • 5:41 - 5:46
    Agora, Hedge pode ir além
    para calcular quanta energia haverá
  • 5:46 - 5:50
    acima de cada coluna,
    com a mesma equação de antes:
  • 5:50 - 5:54
    utilize o menor dos valores
    armazenados à esquerda e à direita,
  • 5:54 - 5:57
    e subtraia a altura da torre atual.
  • 5:57 - 6:00
    Ao invés de olhar para N colunas N vezes,
  • 6:00 - 6:02
    ele olhará para N colunas
    apenas três vezes,
  • 6:02 - 6:05
    o que chamamos de "tempo linear".
  • 6:05 - 6:08
    Há maneiras de otimizar
    a solução ainda mais,
  • 6:08 - 6:11
    mas isso basta para nossos heróis.
  • 6:11 - 6:13
    Ethic e Hedge trabalham em conjunto.
  • 6:15 - 6:19
    A primeira cascata de energia
    é muito fácil, e eles sobem a torre.
  • 6:22 - 6:24
    A segunda é um pouco mais difícil.
  • 6:33 - 6:37
    A terceira é grande,
    com dezenas de colunas de blocos.
  • 6:37 - 6:41
    O tempo se esgota,
    mas o programa de Ethic é rápido.
  • 6:41 - 6:45
    Ela consegue colocar o volante
    na posição correta bem a tempo,
  • 6:49 - 6:52
    e a energia os leva até o Node da Criação.
  • 6:56 - 6:58
    Assim como o primeiro artefato,
    este contém uma visão:
  • 6:58 - 7:01
    memórias de anos passados.
  • 7:01 - 7:03
    A máquina do mundo mudou tudo,
  • 7:03 - 7:07
    e Ethic, na posição
    de engenheira-chefe de robótica,
  • 7:07 - 7:09
    ficou preocupada com o que viu.
  • 7:09 - 7:12
    Quando Bradbarrier foi construída
    para aprisionar as pessoas,
  • 7:12 - 7:15
    Ethic sabia que algo estava muito errado.
  • 7:15 - 7:17
    Então, ela criou três artefatos
  • 7:17 - 7:21
    capazes de restaurar o poder,
    a criatividade e a memória das pessoas,
  • 7:21 - 7:24
    e os contrabandeou para três comunidades.
  • 7:24 - 7:27
    Antes que ela pudesse dizer
    às pessoas como usá-los,
  • 7:27 - 7:29
    o governo descobriu
    suas intenções e enviou os robôs
  • 7:29 - 7:32
    para prendê-la e os outros programadores.
  • 7:32 - 7:35
    Ethic usou a máquina do mundo
    para criar uma última coisa:
  • 7:35 - 7:40
    um robô que protegeria o artefato antigo
    das forças da ignorância,
  • 7:40 - 7:42
    encerrando-o em um enorme labirinto.
  • 7:42 - 7:45
    Ela deu o nome de Hedge à sua criação.
  • 7:52 - 7:56
    Sem nenhum aviso, a corrente de energia
    oscila e então é interrompida.
Title:
A Torre da Epifania | Pense Como um Programador, Episódio 7
Speaker:
Alex Rosenthal
Description:

Veja a lição completa: https://ed.ted.com/lessons/the-tower-of-epiphany-think-like-a-coder-ep-7

Este é o sétimo episódio de nossa série de animação “Pense Como um Programador”. Esta narrativa de dez episódios acompanha uma garota, Ethic, e seu amigo robô, Hedge, enquanto tentam salvar o mundo. Os dois embarcam em uma missão para reunir três artefatos e devem encontrar o caminho, passando por uma série de enigmas de programação. Lição de Alex Rosenthal, dirigido por Kozmonot Animation Studio.

more » « less
Video Language:
English
Team:
closed TED
Project:
TED-Ed
Duration:
07:58

Portuguese, Brazilian subtitles

Revisions Compare revisions