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

428,635 views ・ 2020-02-27

TED-Ed


Vui lòng nhấp đúp vào phụ đề tiếng Anh bên dưới để phát video.

Reviewer: Dinh Lieu Vu
00:31
Ethic and Hedge are on the ground floor of a massive tower.
0
31587
5701
Ethic và Hedge
đang đứng ở tầng một của tòa tháp.
00:37
Barriers of energy separate them from their quest’s second goal:
1
37288
4657
Những rào chắn năng lượng ngăn cách họ đến với hiện vât thứ hai:
00:41
the Node of Creation.
2
41945
2000
Viên Đá Sáng Tạo.
00:52
To reach it, Ethic must use three energy streams to climb the tower.
3
52667
4742
Để tới đó, Ethic buộc phải dùng
ba nấc năng lượng để trèo lên ngọn tháp.
00:57
As soon as she steps forward a timer will begin counting down from 60 seconds.
4
57409
5950
Và ngay khi bước lên phía trước
thời gian sẽ dần đếm lùi trong vòng 60 giây.
01:07
At the back of the room there’s a basin made of invisible towers
5
67359
4300
Đằng sau căn phòng có một cái bồn chứa
01:11
that can hold energy between them.
6
71659
3076
để đựng các khối năng lượng vô hình trong đó.
01:14
After one minute, a torrent of energy will pour down from above,
7
74735
4130
Sau một phút,
hàng loạt dòng chảy năng lượng sẽ đổ từ trên xuống,
01:18
filling one unit at a time,
8
78865
2150
lấp đầy từng khối một,
và không tràn ra ngoài nhờ có trường lực ngăn cách.
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
Trong vòng 60 giây trấn tĩnh,
01:27
Ethic and Hedge must decide exactly how many units of energy will fall.
11
87625
5098
Ethic và Hedge phải tìm ra
có chính xác bao nhiêu đơn vị năng lượng sẽ đổ xuống.
01:32
For each of the three challenges,
12
92723
1700
Với mỗi thử thách,
01:34
they must choose the amount that will fill the basin exactly.
13
94423
3665
họ phải đưa ra số lượng chính xác các khối sẽ lấp đầy bồn chứa.
01:38
If they do so, the energy will propel them further upwards.
14
98088
3850
Và như vậy, nguồn năng lượng sẽ đẩy họ lên trên.
01:41
But if they get the amount at all wrong, the energy lift will fail,
15
101938
4620
Nhưng nếu tính sai,
việc lên cao nhờ năng lượng sẽ thất bại,
01:46
dropping them.
16
106558
1490
và họ sẽ rơi xuống.
01:48
Diagrams on the walls illustrate some examples.
17
108048
3300
Sơ đồ về hình khối sẽ đưa ra vài minh họa.
01:51
This configuration will capture exactly 2 units of energy.
18
111348
4270
Với hình khối này sẽ khớp với hai khối năng lượng.
01:55
This configuration will capture 4— 3 here, and 1 here.
19
115618
5117
Ở hình này sẽ khớp với bốn khối ở đây—
ba khối ở kia, và một khối ở đây.
02:00
And this one will also capture 4,
20
120735
2540
Và ở hình này sẽ cần bốn khối,
02:03
because any energy on the right would spill out.
21
123275
3413
vì nếu đổ năng lượng vào chỗ bên phải sẽ bị tràn ra.
02:06
The energy will rain down in such a way
22
126688
2220
Nguồn năng lượng sẽ chảy xuống
02:08
that it’ll only overflow if there’s no space that could hold it.
23
128908
4630
và tràn ra nếu không có
khoảng không gian trũng nào có thể đựng nó.
02:13
Hedge can make one tower of blocks visible at a time and count how tall it is,
24
133538
5327
Hedge có thể tiến đến từng cột vô hình
và đếm xem mỗi cột cao bao nhiêu khối,
02:18
but he can’t look at the whole structure all at once.
25
138865
3860
nhưng nó không thể nắm được toàn bộ cấu trúc các cột.
02:22
How does Ethic program Hedge to figure out
26
142725
2805
Làm thế nào để Ethic lập trình Hedge để giúp nó hình dung
02:25
exactly how much energy each basin can hold?
27
145530
3810
có chính xác bao nhiêu năng lượng có thể chứa trong mỗi bồn?
02:29
Pause now to figure it out for yourself.
28
149340
9465
Tạm dừng một lúc để chúng ta có thể hình dung.
02:38
Here’s one way of thinking about what’s happening:
29
158805
2830
Và đây là một cách để mường tượng ra hiện trạng:
02:41
each unoccupied cell will hold energy
30
161635
2915
mỗi một ô nhàn rỗi sẽ chứa năng lượng
02:44
if and only if there is a wall eventually to its left,
31
164550
4240
nhưng chỉ khi có bức tường chắn ngoài cùng
02:48
and a wall eventually to its right.
32
168790
2727
ở hai bên trái và phải.
02:51
But it would take a long time for Hedge to check this for each individual cell.
33
171517
4805
Nhưng sẽ mất nhiều thời gian nếu để Hedge kiểm tra từng ô một.
02:56
So what if he were to consider a whole column of blocks at a time?
34
176322
4863
Vậy nếu Hedge xem xét lần lượt từng cột thì sao?
03:01
How many units of energy can this hold, for instance?
35
181185
3840
Ví dụ như, có bao nhiêu đơn vị năng lượng sẽ được đổ đầy?
03:05
Pause now to figure it out for yourself.
36
185025
5364
Tạm dừng một lúc để chúng ta có thể hình dung.
03:10
Let’s analyze the problem by looking at our example.
37
190389
3370
Hãy phân tích vấn đề từ ví dụ của chúng ta.
03:13
There are 5 columns of blocks here.
38
193759
2155
Có năm khối cột ở đây.
03:15
The leftmost one can’t hold any energy, because there’s nothing higher than it.
39
195914
4570
Cột ngoài cùng bên trái
không thể chứa năng lượng, vì nó là một trong các cột cao nhất.
03:20
The 2nd stack can have 3 units above it,
40
200484
2634
Cột thứ hai có thể chứa ba đơn vị năng lượng,
03:23
as they would be trapped between these two 4 block stacks.
41
203118
4126
nhưng các ô nhàn rỗi lại được ngăn bởi hai cột bốn ô.
03:27
We get 3 units by taking the height where the energy would level off— 4,
42
207244
4942
Chúng ta tính ra ba đơn vị nhàn rỗi
nhờ lấy độ cao từ cột cố định ngoài cùng bên trái— 4,
03:32
and subtracting the height of the stack— so that’s 4 minus 1.
43
212186
4160
và trừ đi độ cao của cột thứ hai— vậy là 4 trừ 1.
03:36
The 3rd stack is similar— 4 to the left, 4 to the right, and it’s 3 high,
44
216346
5462
Cột thứ ba cũng tương tự—
cột bốn ô bên trái, cột bốn ô bên phải,
độ cao của cột đang tính là ba,
03:41
so it’ll hold 4 minus 3 equals 1 unit.
45
221808
4729
vậy sẽ là 4 trừ 3 bằng 1 đơn vị.
03:46
The 4th stack and 5th stacks have nothing higher than them to the right,
46
226537
4420
Tới cột thứ tư và cột thứ năm
thì không có cột nào cao hơn ở bên phải,
03:50
so they can’t hold any energy.
47
230957
2470
nên chúng không thể đựng năng lượng bên trong.
03:53
We can adapt this idea into an algorithm.
48
233427
3818
Theo ý tưởng này có thể thành lập thuật toán.
03:57
Considering one column at a time as the point of reference,
49
237245
3780
Nhờ xem xét một cột và lấy đó làm tham chiếu,
04:01
Hedge can look to the left stack by stack to find the height of the tallest one,
50
241025
4411
Hedge có thể nhìn qua trái
từng cột một để tìm xem cột nào cao nhất,
04:05
look to the right to find the height of the tallest one,
51
245436
2720
rồi lại xem cột nào cao nhất bên phải,
04:08
and take the smaller of the two as the height the energy can fill up to.
52
248156
4677
và lấy độ cao của cột thấp hơn trong hai cột làm mốc
coi đó là mức năng lượng có thể lấp đầy.
04:12
If the result is higher than the column in question,
53
252833
3130
Nếu độ cao cột làm mốc lớn hơn chiều cao cột hiện tại,
04:15
subtract the height of the original column,
54
255963
2574
thì lấy độ cao cột mốc trừ đi độ cao cột hiện tại,
04:18
and the result will be the number of units that column can hold.
55
258537
5097
và kết quả sẽ là
số đơn vị năng lượng có thể đổ xuống.
04:23
If it's equal to or below the level of the column in question,
56
263634
3560
Nếu phép so sánh bằng
hoặc nhỏ hơn chiều cao của cột hiện tại
04:27
the energy would spill off.
57
267194
2203
thì năng lượng sẽ tràn ra.
04:29
Hedge can apply that to an entire basin with a loop
58
269397
3520
Hedge có thể áp dụng cho toàn bộ bồn chứa
chỉ với một vòng lặp
04:32
that starts on the left-most column and moves right, one column at a time.
59
272917
5745
và đi từng cột một
bắt đầu từ cột đầu tiên bên trái di chuyển sang phải.
04:38
For each column, he’ll run the same steps— look all the way left for the tallest,
60
278662
5009
Với mỗi cột, nó sẽ thực hiện các bước tương tự—
tìm cột cao nhất bên trái,
04:43
do the same to the right, take the lower height of the two,
61
283671
3560
và cột cao nhất bên phải, lấy ra cột thấp hơn làm mốc,
04:47
subtract the original column height,
62
287231
2087
lấy mốc trừ cho cột hiện tại,
04:49
and increase the grand total if that number is positive.
63
289318
3860
và đổ đầy chỗ trống nếu kết quả là một số nguyên dương.
04:53
His loop will repeat as many times as there are columns.
64
293178
3670
Vòng lặp sẽ duyệt qua mỗi cột.
04:56
That will work, but it’ll take a long time for a large basin.
65
296848
3950
Mọi thứ vẫn sẽ ổn,
nhưng sẽ mất thời gian đối với một bồn chứa lớn.
05:00
At every step Hedge repeats the action of looking left and looking right.
66
300798
4530
Với mỗi bước Hedge sẽ lặp lại hành động tìm kiếm từ trái qua phải.
05:05
If there are N stacks, he’ll look at all N stacks N times.
67
305328
4952
Nếu với N cột,
nó sẽ phải tìm kiếm N cột với N khối.
05:10
Is there a faster way?
68
310280
1980
Vậy có cách nào nhanh hơn không?
05:12
Here’s one time saver: before doing anything else,
69
312260
3348
Đây sẽ là cách nhanh hơn:
05:15
Hedge can start on the left,
70
315608
1860
trước khi bắt đầu,
05:17
and keep a running tally of what the highest stack is.
71
317468
3870
Hedge sẽ đi từ trái,
và tính ra chiều cao lớn nhất cho từng cột theo thời gian.
05:21
Here that would be 2, 2 again, since the first was higher,
72
321338
3760
Và nó sẽ như này 2, tiếp tục là 2, tính từ cột cao nhất ban đầu,
05:25
then 4, 4, 4.
73
325098
2750
rồi tới 4, 4, 4.
05:27
He can then find the highest right-most stacks
74
327848
2780
Nó cũng có thể tìm cột cao nhất
05:30
by doing the same going right-to-left: 1, 3, 4, 4, 4.
75
330628
6254
từ phải sang bằng cách đi tương tự từ phải sang trái:
1, 3, 4, 4, 4.
05:36
In the end he’ll have a table like this in his memory.
76
336882
3840
Và cuối cùng Hedge sẽ có một bảng
trông như thế này ở trong bộ nhớ.
05:40
Now, Hedge can take one more pass to calculate how much energy there will be
77
340722
5239
Giờ đây, Hedge sẽ đi thêm một lần nữa để tính ra số năng lượng
05:45
above every stack with the same equation from before:
78
345961
4040
có thể đổ xuống nhờ vào một phương trình:
lấy số nhỏ nhất của mỗi cột trong bảng,
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
và trừ đi chiều cao của cột hiện tại.
05:56
Instead of looking at N stacks N times, he’ll look at N stacks just 3 times—
81
356708
5585
Thay vì tìm kiếm với N ngăn trên N lần,
Hedge chỉ phải tìm N ngăn trên 3 lần—
06:02
which is what’s called linear time.
82
362293
2280
đây được gọi là thời gian tuyến tính.
06:04
There are ways to optimize the solution even further,
83
364573
3241
Vẫn có cách để tối ưu hóa giải pháp tốt hơn,
06:07
but this is good enough for our heroes.
84
367814
2750
và với người hùng của chúng ta vậy là đủ.
06:10
Ethic and Hedge work as one.
85
370564
1770
Ethic và Hedge cùng phối hợp.
06:14
The first cascade is a breeze, and they rise up the tower.
86
374992
3844
Với thử thách đầu khá dễ dàng, họ đã nâng thêm độ cao.
06:21
The second is a little tougher.
87
381573
2010
Thử thách thứ hai thì khó hơn một chút.
06:33
The third is huge, with dozens of stacks of blocks.
88
393051
3860
Trước thử thách cuối khá đồ sộ, với hàng chục những khối cột.
06:36
The timer ticks down towards zero, but Ethic’s program is fast.
89
396911
4433
Thời gian thì đang dần tiến về 0,
nhưng chương trình của Ethic rất nhanh.
06:41
She gets the wheel in position just in time,
90
401344
2964
Cô ấy đã hoàn thành đúng lúc,
và năng lượng đã đưa họ đi lên với Viên Đá Sáng Tạo.
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
Như lần trước, khi hình ảnh hiện ra: ký ức ập tới.
07:01
The world machine changed everything,
93
421067
2120
Thế giới máy móc đã thay đổi mọi thứ,
07:03
and Ethic, in her position as chief robotics engineer,
94
423187
3669
và Ethic, với vị trí kĩ sư trưởng,
07:06
grew troubled by what she saw.
95
426856
2050
đã gặp rắc rối trước những gì cô ấy thấy.
07:08
When the Bradbarrier went up to keep the people in,
96
428906
3040
Khi bức tường Bradbarrier được xây dựng
07:11
she knew something was seriously wrong.
97
431946
2640
để nhốt mọi người ở trong đó,
cô biết rằng đó là sai lầm nghiêm trọng.
07:14
So she created three artifacts
98
434586
2090
Vì thế cô đã tạo ra ba vật thể
07:16
with the ability to restore people’s power, creativity, and memory,
99
436676
4545
với khả năng lưu trữ sức mạnh, sự sáng tạo và trí nhớ của con người,
07:21
and smuggled them to three communities.
100
441221
2910
rồi lén cất giấu chúng ở ba nơi khác nhau.
07:24
Before she could tell people how to use them,
101
444131
2318
Cô chưa kịp nói với mọi người cách sử dụng chúng,
07:26
the government discovered her efforts and sent bots to arrest her
102
446449
3510
thì chính phủ đã biết được ý định của cô
và cử người máy đến để bắt giữ cô
07:29
and the other programmers.
103
449959
1930
cùng các lập trình viên khác.
07:31
The last thing Ethic used the world machine to create
104
451889
3320
Thứ cuối cùng mà Ethic sử dụng thế giới máy móc để chế tạo
07:35
was a robot that would protect the ancient device
105
455209
2790
đó là một người máy có khả năng bảo vệ các thiết bị cũ
07:37
from the forces of ignorance by enclosing it in a giant maze.
106
457999
4330
trước quyền lực của sự thiếu hiểu biết
nhờ việc cất dấu nó trong một mê cung rộng lớn.
07:42
She named her creation Hedge.
107
462329
2414
Cô ấy đã đặt tên cho người máy đó là Hedge.
07:51
Without warning, the energy lift flickers, then fizzles out.
108
471801
3830
Rồi đột ngột,
bệ nâng nhấp nháy, và mọi thứ vụt tắt.
Về trang web này

Trang web này sẽ giới thiệu cho bạn những video YouTube hữu ích cho việc học tiếng Anh. Bạn sẽ thấy các bài học tiếng Anh được giảng dạy bởi các giáo viên hàng đầu từ khắp nơi trên thế giới. Nhấp đúp vào phụ đề tiếng Anh hiển thị trên mỗi trang video để phát video từ đó. Phụ đề cuộn đồng bộ với phát lại video. Nếu bạn có bất kỳ nhận xét hoặc yêu cầu nào, vui lòng liên hệ với chúng tôi bằng biểu mẫu liên hệ này.

https://forms.gle/WvT1wiN1qDtmnspy7