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

430,906 views ・ 2020-02-27

TED-Ed


Пожалуйста, дважды щелкните на английские субтитры ниже, чтобы воспроизвести видео.

Переводчик: Elena McDonnell Редактор: Yulia Kallistratova
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
Как только она сделает шаг вперёд, таймер начнёт отсчёт 60 секунд.
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
В течение 60 спокойных секунд
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
Такая конфигурация может удержать 2 единицы энергии,
01:55
This configuration will capture 4— 3 here, and 1 here.
19
115618
5117
а такая удержит 4 — 3 здесь и 1 здесь.
02:00
And this one will also capture 4,
20
120735
2540
Такая конфигурация тоже удержит 4,
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
Здесь 5 столбиков блоков.
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
Второй может уместить 3 единицы,
03:23
as they would be trapped between these two 4 block stacks.
41
203118
4126
потому что они будут удерживаться этими двумя столбиками из 4-х блоков.
03:27
We get 3 units by taking the height where the energy would level off— 4,
42
207244
4942
Мы получаем 3 единицы, взяв высоту верхнего предела 4
03:32
and subtracting the height of the stack— so that’s 4 minus 1.
43
212186
4160
и отняв высоту данного столбика, то есть 4 минус 1.
03:36
The 3rd stack is similar— 4 to the left, 4 to the right, and it’s 3 high,
44
216346
5462
Третий столбик такой же: 4 слева и 4 справа, а высота — 3,
03:41
so it’ll hold 4 minus 3 equals 1 unit.
45
221808
4729
то есть 4 минус 3 равно 1 отсеку.
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
Если у нас N столбиков, ему придётся рассмотреть N столбиков N раз.
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
Здесь это будет 2, тут тоже 2, потому что первый столбик был выше,
05:25
then 4, 4, 4.
73
325098
2750
затем 4, 4, 4.
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
выполнив то же самое справа налево: 1, 3, 4, 4, 4.
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
Вместо рассмотрения N столбиков N раз он рассмотрит N столбиков всего 3 раза;
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
Внезапно энергетический лифт начинает мигать, а затем полностью угасает.
Об этом сайте

Этот сайт познакомит вас с видеороликами YouTube, полезными для изучения английского языка. Вы увидите уроки английского языка, преподаваемые высококлассными учителями со всего мира. Дважды щелкните по английским субтитрам, отображаемым на каждой странице видео, чтобы воспроизвести видео оттуда. Субтитры прокручиваются синхронно с воспроизведением видео. Если у вас есть какие-либо комментарии или пожелания, пожалуйста, свяжитесь с нами, используя эту контактную форму.

https://forms.gle/WvT1wiN1qDtmnspy7