The Tower of Epiphany | Think Like A Coder, Ep 7

430,906 views ・ 2020-02-27

TED-Ed


Please double-click on the English subtitles below to play the video.

00:31
Ethic and Hedge are on the ground floor of a massive tower.
0
31587
5701
00:37
Barriers of energy separate them from their quest’s second goal:
1
37288
4657
00:41
the Node of Creation.
2
41945
2000
00:52
To reach it, Ethic must use three energy streams to climb the tower.
3
52667
4742
00:57
As soon as she steps forward a timer will begin counting down from 60 seconds.
4
57409
5950
01:07
At the back of the room there’s a basin made of invisible towers
5
67359
4300
01:11
that can hold energy between them.
6
71659
3076
01:14
After one minute, a torrent of energy will pour down from above,
7
74735
4130
01:18
filling one unit at a time,
8
78865
2150
01:21
with a force field preventing it from spilling out the front or back.
9
81015
4480
01:25
During the 60 calm seconds,
10
85495
2130
01:27
Ethic and Hedge must decide exactly how many units of energy will fall.
11
87625
5098
01:32
For each of the three challenges,
12
92723
1700
01:34
they must choose the amount that will fill the basin exactly.
13
94423
3665
01:38
If they do so, the energy will propel them further upwards.
14
98088
3850
01:41
But if they get the amount at all wrong, the energy lift will fail,
15
101938
4620
01:46
dropping them.
16
106558
1490
01:48
Diagrams on the walls illustrate some examples.
17
108048
3300
01:51
This configuration will capture exactly 2 units of energy.
18
111348
4270
01:55
This configuration will capture 4— 3 here, and 1 here.
19
115618
5117
02:00
And this one will also capture 4,
20
120735
2540
02:03
because any energy on the right would spill out.
21
123275
3413
02:06
The energy will rain down in such a way
22
126688
2220
02:08
that it’ll only overflow if there’s no space that could hold it.
23
128908
4630
02:13
Hedge can make one tower of blocks visible at a time and count how tall it is,
24
133538
5327
02:18
but he can’t look at the whole structure all at once.
25
138865
3860
02:22
How does Ethic program Hedge to figure out
26
142725
2805
02:25
exactly how much energy each basin can hold?
27
145530
3810
02:29
Pause now to figure it out for yourself.
28
149340
9465
02:38
Here’s one way of thinking about what’s happening:
29
158805
2830
02:41
each unoccupied cell will hold energy
30
161635
2915
02:44
if and only if there is a wall eventually to its left,
31
164550
4240
02:48
and a wall eventually to its right.
32
168790
2727
02:51
But it would take a long time for Hedge to check this for each individual cell.
33
171517
4805
02:56
So what if he were to consider a whole column of blocks at a time?
34
176322
4863
03:01
How many units of energy can this hold, for instance?
35
181185
3840
03:05
Pause now to figure it out for yourself.
36
185025
5364
03:10
Let’s analyze the problem by looking at our example.
37
190389
3370
03:13
There are 5 columns of blocks here.
38
193759
2155
03:15
The leftmost one can’t hold any energy, because there’s nothing higher than it.
39
195914
4570
03:20
The 2nd stack can have 3 units above it,
40
200484
2634
03:23
as they would be trapped between these two 4 block stacks.
41
203118
4126
03:27
We get 3 units by taking the height where the energy would level off— 4,
42
207244
4942
03:32
and subtracting the height of the stack— so that’s 4 minus 1.
43
212186
4160
03:36
The 3rd stack is similar— 4 to the left, 4 to the right, and it’s 3 high,
44
216346
5462
03:41
so it’ll hold 4 minus 3 equals 1 unit.
45
221808
4729
03:46
The 4th stack and 5th stacks have nothing higher than them to the right,
46
226537
4420
03:50
so they can’t hold any energy.
47
230957
2470
03:53
We can adapt this idea into an algorithm.
48
233427
3818
03:57
Considering one column at a time as the point of reference,
49
237245
3780
04:01
Hedge can look to the left stack by stack to find the height of the tallest one,
50
241025
4411
04:05
look to the right to find the height of the tallest one,
51
245436
2720
04:08
and take the smaller of the two as the height the energy can fill up to.
52
248156
4677
04:12
If the result is higher than the column in question,
53
252833
3130
04:15
subtract the height of the original column,
54
255963
2574
04:18
and the result will be the number of units that column can hold.
55
258537
5097
04:23
If it's equal to or below the level of the column in question,
56
263634
3560
04:27
the energy would spill off.
57
267194
2203
04:29
Hedge can apply that to an entire basin with a loop
58
269397
3520
04:32
that starts on the left-most column and moves right, one column at a time.
59
272917
5745
04:38
For each column, he’ll run the same steps— look all the way left for the tallest,
60
278662
5009
04:43
do the same to the right, take the lower height of the two,
61
283671
3560
04:47
subtract the original column height,
62
287231
2087
04:49
and increase the grand total if that number is positive.
63
289318
3860
04:53
His loop will repeat as many times as there are columns.
64
293178
3670
04:56
That will work, but it’ll take a long time for a large basin.
65
296848
3950
05:00
At every step Hedge repeats the action of looking left and looking right.
66
300798
4530
05:05
If there are N stacks, he’ll look at all N stacks N times.
67
305328
4952
05:10
Is there a faster way?
68
310280
1980
05:12
Here’s one time saver: before doing anything else,
69
312260
3348
05:15
Hedge can start on the left,
70
315608
1860
05:17
and keep a running tally of what the highest stack is.
71
317468
3870
05:21
Here that would be 2, 2 again, since the first was higher,
72
321338
3760
05:25
then 4, 4, 4.
73
325098
2750
05:27
He can then find the highest right-most stacks
74
327848
2780
05:30
by doing the same going right-to-left: 1, 3, 4, 4, 4.
75
330628
6254
05:36
In the end he’ll have a table like this in his memory.
76
336882
3840
05:40
Now, Hedge can take one more pass to calculate how much energy there will be
77
340722
5239
05:45
above every stack with the same equation from before:
78
345961
4040
05:50
take the smaller of the stored left and right values,
79
350001
3637
05:53
and subtract the height of the current tower.
80
353638
3070
05:56
Instead of looking at N stacks N times, he’ll look at N stacks just 3 times—
81
356708
5585
06:02
which is what’s called linear time.
82
362293
2280
06:04
There are ways to optimize the solution even further,
83
364573
3241
06:07
but this is good enough for our heroes.
84
367814
2750
06:10
Ethic and Hedge work as one.
85
370564
1770
06:14
The first cascade is a breeze, and they rise up the tower.
86
374992
3844
06:21
The second is a little tougher.
87
381573
2010
06:33
The third is huge, with dozens of stacks of blocks.
88
393051
3860
06:36
The timer ticks down towards zero, but Ethic’s program is fast.
89
396911
4433
06:41
She gets the wheel in position just in time,
90
401344
2964
06:49
and the energy lifts them to the Node of Creation.
91
409015
2920
06:55
Like the first, it reveals a vision: memories of years gone by.
92
415640
5427
07:01
The world machine changed everything,
93
421067
2120
07:03
and Ethic, in her position as chief robotics engineer,
94
423187
3669
07:06
grew troubled by what she saw.
95
426856
2050
07:08
When the Bradbarrier went up to keep the people in,
96
428906
3040
07:11
she knew something was seriously wrong.
97
431946
2640
07:14
So she created three artifacts
98
434586
2090
07:16
with the ability to restore people’s power, creativity, and memory,
99
436676
4545
07:21
and smuggled them to three communities.
100
441221
2910
07:24
Before she could tell people how to use them,
101
444131
2318
07:26
the government discovered her efforts and sent bots to arrest her
102
446449
3510
07:29
and the other programmers.
103
449959
1930
07:31
The last thing Ethic used the world machine to create
104
451889
3320
07:35
was a robot that would protect the ancient device
105
455209
2790
07:37
from the forces of ignorance by enclosing it in a giant maze.
106
457999
4330
07:42
She named her creation Hedge.
107
462329
2414
07:51
Without warning, the energy lift flickers, then fizzles out.
108
471801
3830
About this website

This site will introduce you to YouTube videos that are useful for learning English. You will see English lessons taught by top-notch teachers from around the world. Double-click on the English subtitles displayed on each video page to play the video from there. The subtitles scroll in sync with the video playback. If you have any comments or requests, please contact us using this contact form.

https://forms.gle/WvT1wiN1qDtmnspy7