請雙擊下方英文字幕播放視頻。
譯者: Lilian Chiu
審譯者: H_L Au
《用程式設計師的方式思考》
地點:哈林堡
地點:198 森林
第八集:挑戰
00:21
Their fall from the tower sends
Ethic and Hedge
0
21734
3050
艾希克和海吉從塔上落下之後,
00:24
spinning into the rapids
of a river of pure energy.
1
24784
4240
便天旋地轉地落入
純能量的急流當中。
00:30
This torrent flows from the Bradbarrier
all the way to Huxenborg.
2
30944
5937
這條洪流從八達圍
一路流到哈森堡。
00:36
There an entire city’s worth of factories
3
36881
3100
在那裡,有相當於
一整個城市的工廠,
00:39
build the robots
and house the Node of Memory,
4
39981
3080
用來建造機器人和存放記憶之泉,
正是艾希克必須要收集的
三項強大寶物的最後一項。
00:43
the last of the three powerful artifacts
Ethic needs to collect.
5
43061
4372
00:47
After a long day and a longer night
6
47433
2510
在經過漫長的一天
和更漫長的一夜之後,
00:49
they find themselves
in a canyon of brick and steel.
7
49943
3720
他們到了一個由磚塊
和鋼鐵形成的峽谷。
00:58
Just when they’re about to reach
the end of the line,
8
58918
2655
他們快要到達盡頭時,
01:01
a rope catches them.
9
61573
1750
一條繩索套住了他們。
01:07
Their savior, Lemma,
has been waiting for them.
10
67023
4114
他們的救星雷瑪
一直在那裡等他們。
01:11
When Ethic claimed the Node of Creation
from the forest tower,
11
71137
3952
當艾希克從森林中的高塔
取得創造之泉時,
01:15
radios all across the land
came back to life.
12
75089
3900
各地的無線電都恢復通訊了。
01:18
Adila, the resistance leader,
immediately started contacting her allies,
13
78989
4776
反抗軍領袖艾迪拉馬上
就開始聯絡她的盟友,
01:23
none more important than Lemma,
14
83765
2610
當中最重要的就是雷瑪了,
01:26
a brilliant scientist working from within
Huxenborg to bring down the machines.
15
86375
5893
她是個聰明的科學家,
在哈森堡內部努力破壞機器。
01:32
Unfortunately, the radios
also tipped off the robots.
16
92268
4000
不幸的是,無線電
也將消息走漏給機器人。
01:36
So they’ve taken defensive measures
17
96268
2260
於是,它們採取了防禦措施,
01:38
to protect the final artifact in its home
in the very heart of the city.
18
98528
4828
保護身處在城市核心的
最後一項寶物。
01:43
There’s only one way to get there:
the gauntlet of forking paths.
19
103356
5155
要到達只有一種方法,岔路挑戰。
01:48
It’s a deadly series of luminous conveyors
that wind underneath Huxenborg.
20
108511
6386
這個挑戰是在哈森堡地下
一連串的致命迂迴發光輸送帶。
01:54
Starting from the current position,
21
114897
1820
從目前的位置開始,
01:56
each section runs for a distance,
then splits in two.
22
116717
4395
每段輸送帶會輸送一段距離,
接著便一分為二。
02:01
Every branch does the same thing,
again and again.
23
121112
3430
每個分支都會不斷重覆這個流程。
02:04
There are thousands of branches.
24
124542
2400
總共有數千條分支。
02:06
Only one path leads to the artifact;
all the others to destruction.
25
126942
5942
只有一條路通往寶物,
其他則全部都通往死亡。
02:12
Fortunately, the Node of Creation
has granted Hedge a strange power:
26
132884
4619
幸運的是,創造之泉
將一種奇特的力量賦予海吉:
02:17
he can produce slightly smaller versions
of himself.
27
137503
3720
它能製造出它自己的
複製品,但比較小。
02:21
Each version can do only two things:
radio information back to its parent,
28
141223
5210
每一個複製品都會做兩件事:
把資訊用無線電回傳給它的母體,
02:26
and produce slightly smaller
versions of itself…
29
146433
3740
以及再複製出比較小的自己,
02:30
which can do the same two things,
as can their children,
30
150173
3690
而這些複製品同樣也會
做這兩件事,以此類推,
02:33
for as many generations as needed.
31
153863
2940
有必要就可以一直產生新世代。
02:36
A patrol is closing in on their position,
so Ethic’s time is limited.
32
156803
5051
巡邏兵正在靠近,所以時間有限。
02:41
What instructions should she give
Hedge to find the one safe path?
33
161854
5203
她應該給海吉什麼指令,
才能找到那唯一一條安全的通路?
02:47
Pause the video to figure it out yourself.
34
167057
6778
如果想要自己解題,請在此暫停。
提示即將公佈:五
02:53
Hint in 3
35
173835
990
02:54
Hint in 2
36
174825
1200
提示即將公佈:三
02:56
Hint in 1
37
176025
960
提示即將公佈:一
02:57
Programmers have an elegant tool
in their arsenal called recursion.
38
177825
5162
程式設計師有項利器,叫做遞迴。
03:02
Recursion is when you have a set of
instructions that refers back to itself.
39
182987
5341
當你有一組指令,又會導至
它自己本身時,就叫做遞迴。
03:08
It’s like using a word
in its own definition,
40
188328
2960
就像是在一個詞的定義中
用到這個詞一樣,
03:11
except where that’s frowned upon,
this is incredibly effective.
41
191288
4560
差別在於不能使用它時,
這就是非常有效的方法。
03:15
Recursion involves repetition,
but in a different way than loops.
42
195848
4512
遞迴會涉及重覆,但和迴圈不同。
03:20
Where a loop takes one action
and repeats it again and again,
43
200360
4000
迴圈是不斷重覆同一個動作,
03:24
recursion will start an action,
and before it’s finished, use it again,
44
204360
4302
遞迴會從一個動作開始,
在它結束之前,又再次使用它,
03:28
and before that’s finished,
use it again, and so on.
45
208662
4000
在那結束之前,
又再使用它,以此類推。
03:32
It keeps doing this until
some end state is reached.
46
212662
4000
遞迴會這樣不斷進行下去,
直到達成某種終止狀態。
03:36
It then passes the information back up,
layer after layer,
47
216662
4162
接著,就會把資訊一層一層回傳,
03:40
until it reaches the top
and ends the cycle.
48
220824
3620
直到資訊傳到頂層,
循環就此結束。
03:44
Recursion is ideal for problems
that involve self-similarity,
49
224444
4662
遞迴很適合用來解決
和「自相似」有關的問題,
03:49
where each part resembles
the larger whole.
50
229106
2860
也就是每個部分
都和更大的整體很相似。
03:51
Like, for example, a deadly defense
system designed to end any person or thing
51
231966
6004
就像是這個致命的防禦系統,
設計的目的是要消滅
任何有膽踏上它的人或物。
03:57
who dares tread upon it.
52
237970
1890
03:59
Pause the video to figure it out yourself.
53
239860
2060
如果想要自己解題,請在此暫停。
04:01
Solution in 3
54
241920
793
04:02
Solution in 2
55
242713
920
解答即將公佈
04:03
Solution in 1
56
243633
1080
04:04
Ethic’s conundrum seems sprawling
on the surface,
57
244993
3041
艾希克的難題在表面上
看似雜亂無規則,
04:08
but there’s a remarkably simple
solution to it using recursion.
58
248034
4366
但其實若會用遞迴,
就有一個非常簡單的解法。
04:12
In order to find it, let’s first look
at the simplest version of this puzzle:
59
252400
4750
為了要解題,我們先來看看
這個謎題最簡單的版本:
04:17
what if the entire maze
were just two paths?
60
257150
3270
如果整個迷宮只有兩條路呢?
04:20
If Hedge copies himself, the copy
that goes the wrong way will be destroyed.
61
260420
4618
如果海吉複製它自己,
走錯路的複製品會被摧毀。
04:25
So the other one,
which will reach the artifact,
62
265038
2719
所以,另一個複製
就會抵達寶物所在,
04:27
can radio back the path it took,
and then no matter which way is correct,
63
267757
4700
用無線電回傳它走過的路徑資訊,
不論哪條路是對的路,
那就是海吉會收到的答案。
04:32
that’s the answer Hedge will receive.
64
272457
2401
04:34
This is called the "base case"
of the recursion.
65
274858
3580
這就叫做遞迴的「基本情況」。
04:38
Now, suppose the maze
branches twice from the starting point,
66
278438
3340
假設迷宮從起始點開始
就有兩倍的岔路,
04:41
and at every intersection,
Hedge’s copies—
67
281778
2982
在每個路口,海吉的複製品——
04:44
let’s call them Twig 1 and Twig 2—
68
284760
2860
咱們就稱它們為
小枝一號和小枝二號——
04:47
make more copies—
let’s call them Leaves 1 through 4.
69
287620
5007
會產生更多複製品——
稱為小葉一號到小葉四號。
04:52
Three Leaves will be destroyed.
70
292627
3120
會有三個小葉複製品被摧毀。
04:55
The one that reaches the artifact
will radio back the right answer,
71
295747
4116
抵達寶物所在的那個小葉
會將正確答案用無線電回傳,
04:59
but only to its parent.
72
299863
1980
但只會傳給它的母體。
05:01
So if Twig 1 or 2 is waiting
at an intersection
73
301843
3880
如果小枝一號
或小枝二號在路口等候,
05:05
and hears something over the radio,
74
305723
1990
從無線電聽到消息,
05:07
that’s the right way to go
to the artifact from where it is.
75
307713
3560
那就是從它的所在
通往寶物的正確路線。
05:11
To tell Hedge the right answer
from his perspective,
76
311273
3290
小枝要從它的角度
把正確答案告訴海吉,
05:14
the Twig should say which way it went,
77
314563
2440
就應該要說出它去過哪裡,
05:17
and then the route
it just heard over the radio.
78
317003
3600
以及它從無線電所聽到的路線。
05:20
This same process will work no matter
how many times the maze branches.
79
320603
4790
不論迷宮的分岔有多少,
同樣的流程都行得通。
05:25
Any answer a copy hears on the radio
80
325393
2960
任何複製品從無線電聽到的答案
05:28
must be the way to the control room
from its location,
81
328353
3300
都是從它的所在
到達控制室的路徑,
05:31
and if it then adds the branch it took,
82
331653
2350
如果再加上它自己走的岔路,
05:34
it can tell its parent
how to get there as well.
83
334003
3220
它就可以告訴它的母體
如何到達那裡。
05:37
We can sum up the instructions
in an action called Pathfinder
84
337223
4000
我們可以把指令總整成
一個動作,叫做「找路程式」,
05:41
that every version of Hedge will follow:
85
341223
3130
每個版本的海吉複製品
都要遵循這個程式:
05:44
1. If you’ve reached the artifact,
86
344353
2290
一、如果你到了寶物的所在,
05:46
radio to your parent whether
you got there by going left or right.
87
346643
4094
用無線電告訴你的母體你怎麼走到
那裡(用左轉、右轉來表述)。
05:50
2. When you reach an intersection,
move off the conveyor
88
350737
3830
二、當你到達路口時,
離開輸送帶,
05:54
and send new copies down the left
and right paths.
89
354567
3980
派遣新的複製品
去走左、右兩條路。
05:58
Have them each run Pathfinder.
90
358547
2280
要求它們都要執行「找路程式」。
06:00
This is where recursion comes in,
91
360827
2040
這就是要用到遞迴的地方了,
06:02
and this may happen many times before
the last instruction triggers, which is:
92
362867
5094
這個指令可能要執行許多次,
才會啟動最後一個指令,即:
06:07
3. If you hear anything over the radio,
you should radio to your parent
93
367961
4987
三、如果你從無線電收到資訊,
你就要用無線電聯絡你的母體,
06:12
whether you got to your spot
by going left or right,
94
372948
3629
說明你是怎麼到你的所在
(用左轉、右轉來表述),
06:16
then repeat everything you just heard.
95
376577
2850
接著再重述你從無線電
聽到的所有資訊。
06:19
Pathfinder is an example
of what programmers call functions,
96
379427
3996
「找路程式」就是程式設計師
所謂的函數、子程式,或程序。
06:23
subroutines, or procedures.
97
383423
2690
06:26
No matter the terminology,
the idea is the same—
98
386113
3390
不論用哪個術語稱呼,
背後的想法都相同——
06:29
it’s a set of instructions given a label
so that it can be easily reused—
99
389503
4794
把一組指令包裝起來,
貼上標籤,方便重覆使用——
06:34
perhaps even by itself.
100
394297
2310
甚至可以被它自己使用。
06:36
And in our case that’ll work perfectly—
101
396607
2976
在我們的例子中,
採用它就非常完美——
06:39
an entire network of paths mapped
using just three instructions.
102
399583
5230
只用三條指令
就能繪製出整個網絡。
06:46
So here's what happens.
103
406257
1630
接著發生的狀況是:
07:09
By the time the patrol rounds the corner,
Ethic and Lemma have improvised disguises.
104
429760
5777
當巡邏兵到轉角時,
艾希克和雷瑪臨時湊合出偽裝。
07:15
They try to confuse the bots
long enough to buy Hedge time.
105
435537
4120
她們試圖混淆機器人,
為海吉拖延時間。
07:31
Finally, Hedge’s radio crackles to life
with a series of directions.
106
451473
4778
最後,海吉的無線電傳來
一連串指示,帶來了生機。
07:36
The three dive onto the conveyor
and flee for their lives,
107
456251
3850
三人跳上傳輸帶,開始逃命,
07:40
with a squadron of enforcer bots
in hot pursuit.
108
460101
3720
而一整隊執法機器人正緊追在後。
New videos
關於本網站
本網站將向您介紹對學習英語有用的 YouTube 視頻。 您將看到來自世界各地的一流教師教授的英語課程。 雙擊每個視頻頁面上顯示的英文字幕,從那裡播放視頻。 字幕與視頻播放同步滾動。 如果您有任何意見或要求,請使用此聯繫表與我們聯繫。