The Chasm | Think Like A Coder, Ep 6

446,987 views ・ 2020-01-30

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:21
Ethic, Hedge, and Octavia stand on the edge of a bottomless ravine.
0
21937
4675
Ethic, Hedge, và Octavia đứng trước bờ vực thẳm.
00:26
It’s the only thing between them and the tower
1
26612
2690
Đó là thứ duy nhất ngăn cách họ tiến tới tòa tháp
00:29
that houses the second of three powerful artifacts.
2
29302
3648
mà cất giấu hiện vật thứ hai trong số ba hiện vật.
00:32
They’ve got a brief window of time to get across before the guards return.
3
32950
4980
Họ chỉ có khoảng thời gian ít ỏi
để vượt qua bên đó trước khi lũ người máy quay trở lại.
00:37
With Hedge’s fuel gauge on empty he won’t be able to fly Ethic across,
4
37930
4705
Năng lượng của Hedge không đủ để có thể đưa Ethic bay sang bên đó,
00:42
so the only option is to make a bridge.
5
42635
3630
vậy nên lựa chọn duy nhất là làm cầu bắc qua.
00:46
Fortunately, the floating stacks of stones nearby are bridge components—
6
46265
4655
May thay, những tảng đá nổi gần đó sẽ là vật liệu làm cầu—
00:50
invented by Octavia herself— called hover-blocks.
7
50920
4026
loại đá này do Octavia tự phát minh— được gọi là các khối-lơ lửng.
00:54
Activate a pile with a burst of energy,
8
54946
2552
Kích hoạt một khối đá với một nguồn năng lượng bùng nổ,
00:57
and they’ll self-assemble to span the ravine as Ethic walks across.
9
57498
4516
và nó sẽ tự lắp ráp với nhau thành nhịp cầu để Ethic có thể đi qua.
Nhưng tất nhiên là có đi kèm vướng mắc.
01:02
But there is, of course, a catch.
10
62014
3578
01:05
The hover-blocks are only stable when they’re perfectly palindromic.
11
65592
4659
Các khối-lơ lửng chỉ ổn định khi chúng ở một trạng thái đồng nhất.
01:10
Meaning they have to form a sequence
12
70251
2260
Tức là tạo thành một trình tự
01:12
that’s the same when viewed forwards and backwards.
13
72511
4263
giống nhau từ trước tới sau.
01:16
The stacks start in random orders,
14
76774
2170
Các khối đá có thứ tự ngẫu nhiên,
01:18
but will always put themselves into a palindromic configuration
15
78944
3660
nhưng luôn luôn thiết lập chúng theo một trình tự nhất định
01:22
if they can.
16
82604
1290
nếu có thể.
01:23
If they get to a point where a palindrome isn’t possible,
17
83894
2880
Nếu sắp xếp không theo trình tự nhất định,
01:26
the bridge will collapse,
18
86774
1551
thì cây cầu sẽ sập,
01:28
and whoever’s on it will fall into the ravine.
19
88325
3489
và bất kì ai ở trên cây cầu sẽ rơi ngay xuống vực.
01:31
Let’s look at an example.
20
91814
1638
Hãy xem qua một ví dụ.
01:33
This stack would make itself stable.
21
93452
2460
Đây là khối đá sẽ tạo ra sự ổn định.
01:35
First the A blocks hold themselves in place.
22
95912
3000
Đầu tiên, các khối đá A sẽ tự dính chặt.
01:38
Then the B’s.
23
98912
1070
Rồi đến khối đá B.
01:39
And finally the C would nestle right between the B’s.
24
99982
3690
Và cuối cùng là khối đá C lồng giữa hai khối đá B.
01:43
However, suppose there was one more A.
25
103672
3450
Tuy nhiên, giả sử có thêm một khối A.
01:47
First two A blocks form up, then two B’s,
26
107122
3120
Đầu tiên sẽ vẫn là hai khối đá A, rồi đến hai khối đá B,
01:50
but now the remaining C and A have nowhere to go,
27
110242
3370
nhưng giờ đây ta có khối đá C và A cùng xếp chung với nhau,
01:53
so the whole thing falls apart.
28
113612
2460
và khi này mọi thứ sẽ tan rã.
01:56
The Node of Power enables Hedge to energize a single stack of blocks.
29
116072
4670
Viên Đá Sức Mạnh cho phép Hedge
cấp năng lượng cho một chồng các khối đá.
02:00
What instructions can Ethic give Hedge to allow him to efficiently find
30
120742
4334
Vậy chỉ dẫn gì mà Ethic có thể đưa ra cho Hedge giúp nó tìm
02:05
and power a stable palindromic stack?
31
125076
3051
và nạp năng lượng hiệu quả cho một khối đá ổn định?
02:08
Pause now to figure it out for yourself.
32
128127
9970
Tạm dừng một lúc để chúng ta có thể hình dung.
02:18
Examples of palindromes include ANNA, RACECAR, and MADAM IM ADAM.
33
138097
5461
Ví dụ về trình tự bao gồm ANNA, RACECAR, và MADAM IM ADAM.
02:23
Counting the number of times a given letter appears in a palindrome
34
143558
3730
Đếm số lần đưa ra những kí tự xuất hiện trong trình tự này
02:27
will reveal a helpful pattern.
35
147288
2532
sẽ tìm ra giải pháp cho tình thế này.
02:29
Pause now to figure it out for yourself.
36
149820
4831
Tạm dừng một lúc để chúng ta có thể hình dung.
02:34
Let’s first look at a naïve solution to this problem.
37
154651
3490
Hãy tính đến một giải pháp ngây thơ
cho vấn đề này.
02:38
A naïve solution is a simple, brute-force approach that isn’t optimized—
38
158141
4708
Giải pháp ngây thơ
là một cách tiếp cận đơn giản, thô bạo và không được tối ưu hóa—
02:42
but will get the job done.
39
162849
1980
nhưng vẫn sẽ xong việc.
02:44
Naïve solutions are helpful ways to analyze problems,
40
164829
3491
Giải pháp ngây thơ sẽ có ích khi phân tích vấn đề,
02:48
and work as stepping stones to better solutions.
41
168320
3434
và là bước đệm đưa tới các giải pháp tốt hơn.
02:51
In this case, a naïve solution is to approach a pile of blocks,
42
171754
3770
Trong trường hợp này,
ta sẽ tiếp cận với một chồng các khối đá,
02:55
try all the arrangements,
43
175524
1500
thử sắp xếp chúng,
02:57
and see if one is a palindrome by reading it forward and then backwards.
44
177024
4727
và xem liệu có khối đá nào tuân theo trình tự từ trước tới sau.
03:01
The problem with this approach
45
181751
1480
Vấn đề của cách tiếp cận này
03:03
is that it would take a tremendous amount of time.
46
183231
2493
đó là nó sẽ mất rất nhiều thời gian.
03:05
If Hedge tried one combination every second,
47
185724
2850
Nếu Hedge cố thử một tổ hợp mỗi giây,
03:08
a stack of just 10 different blocks would take him 42 days to exhaust.
48
188574
5198
với một chồng với mười khối đá khác nhau
sẽ mất tới 42 ngày làm việc kiệt sức.
03:13
That’s because the total time is a function of the factorial
49
193772
3830
Đó là bởi vì tổng thời gian là một hàm giai thừa
03:17
of the number of blocks there are.
50
197602
2142
của số lượng khối đá.
03:19
10 blocks have over 3 million combinations.
51
199744
3600
Mười khối đã có trên 3 triệu tổ hợp.
03:23
What this naïve solution shows is that we need a much faster way
52
203344
4280
Những gì mà giải pháp ngây thơ cho thấy
đó là chúng ta cần một cách nhanh hơn
03:27
to tell whether a pile of blocks can form a palindrome.
53
207624
3593
để biết khi nào một khối đá có thể sắp xếp thành một trình tự.
03:31
To start, it may be intuitively clear that a pile of all different blocks
54
211217
4716
Để bắt đầu,
bằng trực giác ta biết rằng một tập hợp các khối khác nhau
03:35
will never form one.
55
215933
1420
sẽ không tạo ra một trình tự phù hợp.
03:37
Why?
56
217353
790
03:38
The first and last blocks can’t be the same if there are no repeats.
57
218143
5281
Những khối đầu tiên và cuối cùng
không thể giống nhau nếu không có sự lặp lại.
03:43
So when can a given sequence become a palindrome?
58
223424
5012
Vậy khi nào thì sẽ tạo ra được một trình tự phù hợp?
03:48
One way to figure that out is to analyze a few existing palindromes.
59
228436
4480
Cách để hình dung ra đó là phân tích các chuỗi sẵn có.
03:52
In ANNA, there are 2 A’s and 2 N’s.
60
232916
3254
Với chuỗi ANNA, có hai chữ A và hai chữ N.
03:56
RACECAR has 2 R’s, 2 A’s, 2 C’s, and 1 E.
61
236170
4886
Chuỗi RACECAR có hai chữ R, hai chữ A, hai chữ C, và một chữ E.
04:01
And MADAM IM ADAM has 4 M’s, 4 A’s, 2 D’s, and 1 I.
62
241056
6730
Và chuỗi MADAM IM ADAM có bốn chữ M, bốn chữ A,
hai chữ D, và một chữ I.
04:07
The pattern here is that most of the letters occur
63
247786
3140
Với công thức này thì hầu hết các kí tự xuất hiện
04:10
an even number of times,
64
250926
1774
với số lần chẵn,
04:12
and there’s at most 1 that occurs just once.
65
252700
3280
và duy chỉ có một kí tự xuất hiện đúng một lần.
04:15
Is that it?
66
255980
1110
Phải vậy không?
04:17
What if RACECAR had 3 E’s instead of 1?
67
257090
3260
Vậy nếu RACECAR có ba chữ E thay vì chỉ một?
04:20
We could tack the new E’s onto the ends and still get a palindrome,
68
260350
3710
Chúng ta có thể nhặt hai chữ E
vào hai đầu và sẽ có một trình tự hợp lý,
04:24
so 3 is ok.
69
264060
1840
vậy nên ba E vẫn ổn.
04:25
But make that 3 E’s and 3 C’s, and there’s nowhere for the last C to go.
70
265900
6064
Nhưng nếu có ba E và ba C,
thì sẽ không xếp chữ C cuối cùng vào đâu được.
04:31
So the most generalized insight is that
71
271964
2720
Và tổng quát hóa
04:34
at most one letter can appear an odd number of times,
72
274684
4096
hầu hết các kí tự có thể xuất hiện theo số lần chẵn
04:38
but the rest have to be even.
73
278780
3066
nhưng số lần xuất hiện của kí tự cuối sẽ là số lẻ.
04:41
Hedge can count the letters in each stack and organize them into a dictionary,
74
281846
4314
Hedge có thể đếm các kí tự trong mỗi khối
và tổ chức chúng thành từ điển,
04:46
which is a tidy way of storing information.
75
286160
2725
đó là cách lưu trữ thông tin có trật tự.
04:48
A loop could then go through and count how many times odd numbers appear.
76
288885
4579
Một vòng lặp có thể duyệt
và đếm ra bao nhiêu lần số chẵn xuất hiện.
04:53
If there are less than 2 odd characters, the stack can be made into a palindrome.
77
293464
5500
Nếu ít hơn hai kí tự là chẵn,
thì khối đó có thể tạo thành một trình tự hợp lí.
04:58
This approach is much, much faster than the naïve solution.
78
298964
3720
Cách tiếp cận này nhanh hơn rất nhiều
so với cách trước.
05:02
Instead of factorial time, it takes linear time.
79
302684
3420
Thay vì tính giai thừa số lần, thì ta tính số lần tuyến tính.
05:06
That’s where the time increases
80
306104
1570
Đó là chỗ mà thời gian tăng lên
05:07
in proportion to the number of blocks there are.
81
307674
2710
tương ứng với số khối đá.
05:10
Now write a loop for Hedge to approach the piles individually,
82
310384
3990
Bây giờ, hãy viết một vòng lặp
để Hedge tiếp cận các khối đá riêng lẻ
05:14
and stop when he finds a good one, and you’ll be ready to go.
83
314374
4155
và dừng lại khi nó tìm thấy một khối phù hợp
và hãy bắt đầu thôi.
05:18
Here’s what happens:
84
318529
1389
Đây là những gì sảy ra:
05:19
Hedge is fast, but there are so many piles it takes a long time.
85
319918
4046
Hedge rất nhanh, nhưng có quá nhiều khối đá
và mất rất nhiều thời gian.
05:23
Too long.
86
323964
1356
Rất lâu.
06:17
Ethic and Hedge are safe.
87
377897
1680
Ethic và Hedge đã may mắn thoát được.
06:19
But Octavia is not so lucky.
88
379577
2423
Nhưng Octavia thì không.
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