A Ética e o Hedge estão no piso térreo de uma torre enorme.
Barreiras de energia separam-nos do seu segundo objetivo:
o Nódulo da Criação.
Para alcançá-lo, a Ética tem de usar três fluxos de energia para subir a torre.
Assim que der um passo,
um temporizador começará uma contagem decrescente de 60 segundos.
No fundo da sala há um reservatório de torres invisíveis
que podem reter a energia entre elas.
Após um minuto, cai do alto uma torrente de energia,
enchendo uma unidade de cada vez,
com um campo de forças que impede derrames pela frente ou por trás.
Durante esses calmos 60 segundos,
a Ética e o Hedge têm de decidir o número exato de unidades de energia que vão cair.
Para cada um dos três desafios,
têm de escolher a quantidade exata que irá preencher o reservatório.
Se o fizerem, a energia irá impulsioná-los para cima.
Mas, se a quantidade for a errada, o elevador de energia irá falhar,
e eles cairão.
Os diagramas nas paredes ilustram alguns exemplos,
Esta configuração irá capturar exatamente duas unidades de energia.
Esta configuração irá capturar quatro: três aqui e uma aqui.
E nesta também capturará quatro,
uma vez que qualquer energia à direita transbordará.
A energia cairá de uma forma
que só transbordará se não houver espaço para a conter.
O Hedge pode tornar visível uma coluna de blocos de cada vez
e contar a sua altura,
mas não poderá ver a estrutura inteira de uma só vez.
Como irá a Ética programar o Hedge para calcular
a capacidade exata de energia de cada reservatório?
Faz uma pausa agora para chegares à solução sozinho.
[Cada bacia tem uma série de torres de blocos que retêm a energia entre elas]
[Hedge tem de calcular quantas unidades de energia uma dada bacia pode conter]
Eis uma forma de pensar no que está a acontecer:
cada célula vazia pode reter energia
apenas e se existir uma parede à sua esquerda
e uma parede à sua direita.
Mas Hedge levaria demasiado tempo a verificar cada célula individual.
E se em vez disso considerarmos uma coluna de blocos de cada vez?
Por exemplo, quantas unidades de energia poderá esta coluna reter?
Faz uma pausa agora para tentares chegar à solução sozinho.
Vamos analisar o problema olhando para o nosso exemplo.
Temos aqui cinco colunas de blocos.
A coluna mais à esquerda não pode reter energia,
porque não há nada mais alta que ela.
A segunda coluna pode reter três unidades acima dela,
uma vez que elas ficarão presas entre estas duas colunas de quatro blocos.
Obtemos três unidades medindo a altura da coluna onde a energia ficará nivelada:
— ou seja, quatro —
e subtraindo-lhe a altura da coluna — ou seja, quatro menos um.
A terceira coluna é similar
— quatro à esquerda, quatro à direita, e três de altura,
por isso manterá quatro menos três, ou seja, uma unidade.
A quarta e a quinta colunas não têm nada mais alto que elas à direita,
logo não podem reter nenhuma energia.
Podemos adaptar esta ideia a um logaritmo.
Considerando só uma coluna de cada vez como ponto de referência,
o Hedge pode olhar para a esquerda, coluna a coluna,
para encontrar a altura da mais alta.
e olhar para a direita para encontrar a altura da mais alta.
e considerar a mais baixa das duas
como o limite máximo de contenção de energia.
Se o resultado for mais alto do que a coluna em questão,
subtraímos a altura da coluna original,
e o resultado será o número de unidades que a coluna pode conter.
Se for igual ou abaixo do nível da coluna em questão,
a energia iriá transbordar.
O Hedge pode aplicar isso a todo o reservatório com um "loop"
que começa na coluna mais à esquerda
e vai avançando para a direita, uma coluna de cada vez.
Para cada coluna, dará os mesmos passos
— ver a mais alta à esquerda, fazer o mesmo à direita,
pegar na altura da mais baixa,
subtrair a altura da coluna original,
e adicionando ao total se o resultado for positivo.
Este "loop" repete-se tantas vezes quanto o número de colunas.
Isto poderá resultar, mas irá demorar se o reservatório for grande.
A cada passo o Hedge repete a ação de olhar para a esquerda e para a direita.
Se houver "n" colunas, olha "n" vezes para "n" colunas.
Existirá uma forma mais rápida?
Eis uma forma de poupar tempo: antes de qualquer coisa,
ele pode começar pela esquerda.
e manter uma contagem de qual é a coluna mais alta.
Aqui seria dois, dois de novo, uma vez que a primeira era maior,
depois quatro, quatro, quatro.
Pode depois descobrir a mais alta à direita
fazendo o mesmo da direita para a esquerda:
Um, três, quatro, quatro quatro.
No fim, terá uma tabela como esta na sua memória.
Agora, o Hedge poderá dar mais um passo para calcular quanta energia
será necessária usando a mesma equação anterior:
verificar os valores das colunas mais baixas à esquerda e à direita,
e subtrair a altura da coluna atual.
Ao invés de verificar "n" colunas "n" vezes,
irá verificar "n" colunas apenas três vezes,
ao que chamamos "tempo linear".
Existem formas de otimizar ainda mais esta solução,
mas é o suficiente para os nossos heróis.
A Ética e o Hedge trabalham como um só.
A primeira cascata é fácil e ascendem na torre.
A segunda um pouco mais difícil.
A terceira é enorme com dezenas de colunas de blocos.
O temporizador não para, mas o programa da Ética é veloz.
Consegue colocar a manivela em posição mesmo a tempo,
e a energia eleva-os até ao Nódulo da Criação.
Tal como o primeiro, revela uma visão: a memória de anos passados.
A máquina do mundo mudou tudo,
e a Ética, na sua posição de engenheira chefe de robótica,
ficou preocupada com o que viu.
Quando a Bradbarreira surgiu para impedir as pessoas de sair,
ela percebeu que algo estava mesmo muito mal.
Por isso ela criou três artefatos
com o poder de restaurar o poder, a criatividade e a memória das pessoas,
e escondeu-as em três comunidades.
Antes de poder ensinar as pessoas a usá-las,
o governo soube das suas intenções e enviou robôs para a prender
e aos outros programadores.
A última coisa que a Ética criou com a máquina do mundo,
foi um robô que protegesse o aparelho ancestral
das forças da ignorância, fechando-a num labirinto gigante.
Chamou Hedge à sua criação.
Sem aviso prévio, o elevador de energia começa a piscar e apaga-se.