The Chasm | Think Like A Coder, Ep 6

446,987 views ・ 2020-01-30

TED-Ed


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

Переводчик: Elena McDonnell Редактор: Yulia Kallistratova
00:21
Ethic, Hedge, and Octavia stand on the edge of a bottomless ravine.
0
21937
4675
Этика, Хедж и Октавия стоят на краю бездонного ущелья,
00:26
It’s the only thing between them and the tower
1
26612
2690
отделяющего их от башни,
00:29
that houses the second of three powerful artifacts.
2
29302
3648
в которой находится второй из трёх могущественных артефактов.
00:32
They’ve got a brief window of time to get across before the guards return.
3
32950
4980
У них очень мало времени,
чтобы перебраться через ущелье до возвращения роботов.
00:37
With Hedge’s fuel gauge on empty he won’t be able to fly Ethic across,
4
37930
4705
У Хеджа заканчивается топливо,
поэтому он не сможет перенести Этику на другую сторону.
00:42
so the only option is to make a bridge.
5
42635
3630
Единственный вариант — это построить мост.
00:46
Fortunately, the floating stacks of stones nearby are bridge components—
6
46265
4655
К счастью, парящие вокруг груды камней — это строительные материалы,
00:50
invented by Octavia herself— called hover-blocks.
7
50920
4026
изобретённые Октавией и называемые ховерблоками.
00:54
Activate a pile with a burst of energy,
8
54946
2552
При активации груды ховерблоков толчком энергии
00:57
and they’ll self-assemble to span the ravine as Ethic walks across.
9
57498
4516
они сформируют мост и позволят Этике перебраться через ущелье.
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
Ховерблоки образуют крепкий мост, только если складываются в палиндром.
01:10
Meaning they have to form a sequence
12
70251
2260
Это значит, что они должны сформировать последовательность,
01:12
that’s the same when viewed forwards and backwards.
13
72511
4263
одинаковую в обоих направлениях.
01:16
The stacks start in random orders,
14
76774
2170
Ховерблоки расположены в случайном порядке,
01:18
but will always put themselves into a palindromic configuration
15
78944
3660
но всегда перестраиваются в палиндром,
01:22
if they can.
16
82604
1290
если это возможно.
01:23
If they get to a point where a palindrome isn’t possible,
17
83894
2880
Если палиндром невозможен,
01:26
the bridge will collapse,
18
86774
1551
мост разрушится,
01:28
and whoever’s on it will fall into the ravine.
19
88325
3489
и те, кто находится на нём, упадут в ущелье.
01:31
Let’s look at an example.
20
91814
1638
Давайте рассмотрим один пример.
01:33
This stack would make itself stable.
21
93452
2460
Из этой груды получится крепкий мост.
01:35
First the A blocks hold themselves in place.
22
95912
3000
Сначала будут установлены блоки A.
01:38
Then the B’s.
23
98912
1070
Затем блоки B.
01:39
And finally the C would nestle right between the B’s.
24
99982
3690
И, наконец, C разместится между ними.
01:43
However, suppose there was one more A.
25
103672
3450
А теперь представьте, что у нас есть ещё один блок A.
01:47
First two A blocks form up, then two B’s,
26
107122
3120
Сначала будут установлены первые два блока A, затем два блока B,
01:50
but now the remaining C and A have nowhere to go,
27
110242
3370
но теперь для оставшихся блоков C и A нет места,
01:53
so the whole thing falls apart.
28
113612
2460
поэтому вся конструкция распадается.
01:56
The Node of Power enables Hedge to energize a single stack of blocks.
29
116072
4670
Модуль силы позволяет Хеджу зарядить одну груду блоков.
02:00
What instructions can Ethic give Hedge to allow him to efficiently find
30
120742
4334
Какие указания Этика должна дать Хеджу, чтобы он смог найти
02:05
and power a stable palindromic stack?
31
125076
3051
и зарядить устойчивую палиндромную груду блоков?
02:08
Pause now to figure it out for yourself.
32
128127
9970
Приостановите видео, если хотите найти ответ самостоятельно.
02:18
Examples of palindromes include ANNA, RACECAR, and MADAM IM ADAM.
33
138097
5461
Примерами палиндромов служат такие слова и фразы,
как ANNA, RACECAR и MADAM IM ADAM.
02:23
Counting the number of times a given letter appears in a palindrome
34
143558
3730
Подсчитав, сколько раз в палиндроме повторяется каждая буква,
02:27
will reveal a helpful pattern.
35
147288
2532
можно выявить закономерность.
02:29
Pause now to figure it out for yourself.
36
149820
4831
Приостановите видео, если хотите найти ответ самостоятельно.
02:34
Let’s first look at a naïve solution to this problem.
37
154651
3490
Сначала давайте рассмотрим наивное решение этой задачи.
02:38
A naïve solution is a simple, brute-force approach that isn’t optimized—
38
158141
4708
Наивное решение — это простой, грубый метод, не являющийся оптимальным,
02:42
but will get the job done.
39
162849
1980
но тем не менее позволяющий найти ответ.
02:44
Naïve solutions are helpful ways to analyze problems,
40
164829
3491
Наивные решения — это полезные способы анализа задач,
02:48
and work as stepping stones to better solutions.
41
168320
3434
промежуточные ступени на пути к более рациональному решению.
02:51
In this case, a naïve solution is to approach a pile of blocks,
42
171754
3770
В данном случае наивным решением будет взять груду блоков,
02:55
try all the arrangements,
43
175524
1500
перебрать все сочетания
02:57
and see if one is a palindrome by reading it forward and then backwards.
44
177024
4727
и узнать, будет ли одно из них палиндромом.
03:01
The problem with this approach
45
181751
1480
Проблема этого метода в том,
03:03
is that it would take a tremendous amount of time.
46
183231
2493
что это займёт огромное количество времени.
03:05
If Hedge tried one combination every second,
47
185724
2850
Даже если Хедж будет пробовать одно сочетание в секунду,
03:08
a stack of just 10 different blocks would take him 42 days to exhaust.
48
188574
5198
на груду из всего десяти блоков у него уйдёт 42 дня.
03:13
That’s because the total time is a function of the factorial
49
193772
3830
А всё потому, что общее время — это факториал
03:17
of the number of blocks there are.
50
197602
2142
количества блоков.
03:19
10 blocks have over 3 million combinations.
51
199744
3600
Из 10 блоков можно составить более 3 миллионов сочетаний.
03:23
What this naïve solution shows is that we need a much faster way
52
203344
4280
Это наивное решение демонстрирует, что нам необходим более быстрый способ
03:27
to tell whether a pile of blocks can form a palindrome.
53
207624
3593
определения, можно ли создать палиндром из данных блоков.
03:31
To start, it may be intuitively clear that a pile of all different blocks
54
211217
4716
Для начала, мы можем интуитивно понять, что груда, где все блоки разные,
03:35
will never form one.
55
215933
1420
никогда не сформирует палиндром. Почему?
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
Первый и последний блоки не могут быть одинаковыми, если нет повторений.
03:43
So when can a given sequence become a palindrome?
58
223424
5012
Так когда же последовательность может стать палиндромом?
03:48
One way to figure that out is to analyze a few existing palindromes.
59
228436
4480
Один способ разобраться — проанализировать несколько существующих палиндромов.
03:52
In ANNA, there are 2 A’s and 2 N’s.
60
232916
3254
В примере ANNA две буквы A и две буквы N.
03:56
RACECAR has 2 R’s, 2 A’s, 2 C’s, and 1 E.
61
236170
4886
В примере RACECAR — две буквы R, две A, две C и одна E,
04:01
And MADAM IM ADAM has 4 M’s, 4 A’s, 2 D’s, and 1 I.
62
241056
6730
а в MADAM IM ADAM — четыре M, четыре A, две D и одна I.
04:07
The pattern here is that most of the letters occur
63
247786
3140
Схема здесь такова, что большинство букв повторяются
04:10
an even number of times,
64
250926
1774
чётное количество раз,
04:12
and there’s at most 1 that occurs just once.
65
252700
3280
и максимум одна может не иметь пары.
04:15
Is that it?
66
255980
1110
И это всё?
04:17
What if RACECAR had 3 E’s instead of 1?
67
257090
3260
Что, если бы в слове RACECAR было три буквы E, а не одна?
04:20
We could tack the new E’s onto the ends and still get a palindrome,
68
260350
3710
Мы могли бы разместить их в начале и конце слова, и это был бы палиндром,
04:24
so 3 is ok.
69
264060
1840
поэтому три буквы допустимы.
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
Но если взять три E и три C, то последней букве C не будет места.
04:31
So the most generalized insight is that
71
271964
2720
То есть наиболее обобщённый вывод таков:
04:34
at most one letter can appear an odd number of times,
72
274684
4096
максимум одна буква может повторяться нечётное количество раз,
04:38
but the rest have to be even.
73
278780
3066
а все остальные должны быть в чётном количестве.
04:41
Hedge can count the letters in each stack and organize them into a dictionary,
74
281846
4314
Хедж может подсчитать буквы в каждой груде и упорядочить их в виде словаря;
04:46
which is a tidy way of storing information.
75
286160
2725
это удобный способ хранения информации.
04:48
A loop could then go through and count how many times odd numbers appear.
76
288885
4579
Затем с помощью цикла можно подсчитать, сколько раз встречаются нечётные числа.
04:53
If there are less than 2 odd characters, the stack can be made into a palindrome.
77
293464
5500
Если их там меньше двух, то из груды блоков можно сделать палиндром.
04:58
This approach is much, much faster than the naïve solution.
78
298964
3720
Такой метод гораздо быстрее, чем наивное решение.
05:02
Instead of factorial time, it takes linear time.
79
302684
3420
Вместо факториала здесь линейная зависимость.
05:06
That’s where the time increases
80
306104
1570
То есть время увеличивается
05:07
in proportion to the number of blocks there are.
81
307674
2710
пропорционально количеству блоков.
05:10
Now write a loop for Hedge to approach the piles individually,
82
310384
3990
Теперь напишите цикл, чтобы Хедж подлетал к каждой груде,
05:14
and stop when he finds a good one, and you’ll be ready to go.
83
314374
4155
пока не найдёт нужную, и вам можно будет действовать.
05:18
Here’s what happens:
84
318529
1389
Происходит следующее:
05:19
Hedge is fast, but there are so many piles it takes a long time.
85
319918
4046
Хедж работает быстро, но блоков столько, что на поиск уходит много времени.
05:23
Too long.
86
323964
1356
Слишком много.
06:17
Ethic and Hedge are safe.
87
377897
1680
Этика и Хедж спасаются,
06:19
But Octavia is not so lucky.
88
379577
2423
но Октавию ждёт другая судьба.
Об этом сайте

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

https://forms.gle/WvT1wiN1qDtmnspy7