< Return to Video

挑戰|用程式設計師的方式思考,第八集

  • 0:09 - 0:12
    《用程式設計師的方式思考》
  • 0:13 - 0:16
    地點:哈林堡
    地點:198 森林
  • 0:19 - 0:21
    第八集:挑戰
  • 0:22 - 0:25
    艾希克和海吉從塔上落下之後,
  • 0:25 - 0:29
    便天旋地轉地落入
    純能量的急流當中。
  • 0:31 - 0:36
    這條洪流從八達圍
    一路流到哈森堡。
  • 0:37 - 0:40
    在那裡,有相當於
    一整個城市的工廠,
  • 0:40 - 0:43
    用來建造機器人和存放記憶之泉,
  • 0:43 - 0:47
    正是艾希克必須要收集的
    三項強大寶物的最後一項。
  • 0:47 - 0:50
    在經過漫長的一天
    和更漫長的一夜之後,
  • 0:50 - 0:54
    他們到了一個由磚塊
    和鋼鐵形成的峽谷。
  • 0:59 - 1:02
    他們快要到達盡頭時,
  • 1:02 - 1:04
    一條繩索套住了他們。
  • 1:07 - 1:10
    他們的救星雷瑪
    一直在那裡等他們。
  • 1:11 - 1:15
    當艾希克從森林中的高塔
    取得創造之泉時,
  • 1:15 - 1:19
    各地的無線電都恢復通訊了。
  • 1:19 - 1:24
    反抗軍領袖艾迪拉馬上
    就開始聯絡她的盟友,
  • 1:24 - 1:26
    當中最重要的就是雷瑪了,
  • 1:26 - 1:32
    她是個聰明的科學家,
    在哈森堡內部努力破壞機器。
  • 1:32 - 1:36
    不幸的是,無線電
    也將消息走漏給機器人。
  • 1:36 - 1:39
    於是,它們採取了防禦措施,
  • 1:39 - 1:43
    保護身處在城市核心的
    最後一項寶物。
  • 1:43 - 1:48
    要到達只有一種方法,岔路挑戰。
  • 1:49 - 1:54
    這個挑戰是在哈森堡地下
    一連串的致命迂迴發光輸送帶。
  • 1:55 - 1:57
    從目前的位置開始,
  • 1:57 - 2:01
    每段輸送帶會輸送一段距離,
    接著便一分為二。
  • 2:01 - 2:05
    每個分支都會不斷重覆這個流程。
  • 2:05 - 2:07
    總共有數千條分支。
  • 2:07 - 2:09
    只有一條路通往寶物,
  • 2:09 - 2:12
    其他則全部都通往死亡。
  • 2:13 - 2:18
    幸運的是,創造之泉
    將一種奇特的力量賦予海吉:
  • 2:18 - 2:21
    它能製造出它自己的
    複製品,但比較小。
  • 2:21 - 2:24
    每一個複製品都會做兩件事:
  • 2:24 - 2:27
    把資訊用無線電回傳給它的母體,
  • 2:27 - 2:30
    以及再複製出比較小的自己,
  • 2:30 - 2:34
    而這些複製品同樣也會
    做這兩件事,以此類推,
  • 2:34 - 2:37
    有必要就可以一直產生新世代。
  • 2:37 - 2:42
    巡邏兵正在靠近,所以時間有限。
  • 2:42 - 2:47
    她應該給海吉什麼指令,
    才能找到那唯一一條安全的通路?
  • 2:47 - 2:51
    如果想要自己解題,請在此暫停。
  • 2:53 - 2:54
    提示即將公佈:五
  • 2:55 - 2:56
    提示即將公佈:三
  • 2:56 - 2:58
    提示即將公佈:一
  • 2:58 - 3:03
    程式設計師有項利器,叫做遞迴。
  • 3:03 - 3:08
    當你有一組指令,又會導至
    它自己本身時,就叫做遞迴。
  • 3:08 - 3:11
    就像是在一個詞的定義中
    用到這個詞一樣,
  • 3:11 - 3:16
    差別在於不能使用它時,
    這就是非常有效的方法。
  • 3:16 - 3:20
    遞迴會涉及重覆,但和迴圈不同。
  • 3:20 - 3:24
    迴圈是不斷重覆同一個動作,
  • 3:24 - 3:29
    遞迴會從一個動作開始,
    在它結束之前,又再次使用它,
  • 3:29 - 3:33
    在那結束之前,
    又再使用它,以此類推。
  • 3:33 - 3:37
    遞迴會這樣不斷進行下去,
    直到達成某種終止狀態。
  • 3:37 - 3:41
    接著,就會把資訊一層一層回傳,
  • 3:41 - 3:44
    直到資訊傳到頂層,
    循環就此結束。
  • 3:44 - 3:49
    遞迴很適合用來解決
    和「自相似」有關的問題,
  • 3:49 - 3:52
    也就是每個部分
    都和更大的整體很相似。
  • 3:52 - 3:55
    就像是這個致命的防禦系統,
  • 3:55 - 4:00
    設計的目的是要消滅
    任何有膽踏上它的人或物。
  • 4:00 - 4:03
    如果想要自己解題,請在此暫停。
  • 4:03 - 4:05
    解答即將公佈
  • 4:05 - 4:08
    艾希克的難題在表面上
    看似雜亂無規則,
  • 4:08 - 4:12
    但其實若會用遞迴,
    就有一個非常簡單的解法。
  • 4:12 - 4:17
    為了要解題,我們先來看看
    這個謎題最簡單的版本:
  • 4:17 - 4:20
    如果整個迷宮只有兩條路呢?
  • 4:20 - 4:25
    如果海吉複製它自己,
    走錯路的複製品會被摧毀。
  • 4:25 - 4:28
    所以,另一個複製
    就會抵達寶物所在,
  • 4:28 - 4:30
    用無線電回傳它走過的路徑資訊,
  • 4:30 - 4:35
    不論哪條路是對的路,
    那就是海吉會收到的答案。
  • 4:35 - 4:38
    這就叫做遞迴的「基本情況」。
  • 4:38 - 4:42
    假設迷宮從起始點開始
    就有兩倍的岔路,
  • 4:42 - 4:45
    在每個路口,海吉的複製品——
  • 4:45 - 4:48
    咱們就稱它們為
    小枝一號和小枝二號——
  • 4:48 - 4:52
    會產生更多複製品——
    稱為小葉一號到小葉四號。
  • 4:53 - 4:55
    會有三個小葉複製品被摧毀。
  • 4:56 - 5:00
    抵達寶物所在的那個小葉
    會將正確答案用無線電回傳,
  • 5:00 - 5:02
    但只會傳給它的母體。
  • 5:02 - 5:06
    如果小枝一號
    或小枝二號在路口等候,
  • 5:06 - 5:08
    從無線電聽到消息,
  • 5:08 - 5:11
    那就是從它的所在
    通往寶物的正確路線。
  • 5:11 - 5:15
    小枝要從它的角度
    把正確答案告訴海吉,
  • 5:15 - 5:17
    就應該要說出它去過哪裡,
  • 5:17 - 5:20
    以及它從無線電所聽到的路線。
  • 5:21 - 5:25
    不論迷宮的分岔有多少,
    同樣的流程都行得通。
  • 5:25 - 5:28
    任何複製品從無線電聽到的答案
  • 5:28 - 5:32
    都是從它的所在
    到達控制室的路徑,
  • 5:32 - 5:34
    如果再加上它自己走的岔路,
  • 5:34 - 5:37
    它就可以告訴它的母體
    如何到達那裡。
  • 5:37 - 5:41
    我們可以把指令總整成
    一個動作,叫做「找路程式」,
  • 5:41 - 5:44
    每個版本的海吉複製品
    都要遵循這個程式:
  • 5:44 - 5:47
    一、如果你到了寶物的所在,
  • 5:47 - 5:51
    用無線電告訴你的母體你怎麼走到
    那裡(用左轉、右轉來表述)。
  • 5:51 - 5:54
    二、當你到達路口時,
    離開輸送帶,
  • 5:54 - 5:58
    派遣新的複製品
    去走左、右兩條路。
  • 5:59 - 6:01
    要求它們都要執行「找路程式」。
  • 6:01 - 6:03
    這就是要用到遞迴的地方了,
  • 6:03 - 6:08
    這個指令可能要執行許多次,
    才會啟動最後一個指令,即:
  • 6:08 - 6:13
    三、如果你從無線電收到資訊,
    你就要用無線電聯絡你的母體,
  • 6:13 - 6:17
    說明你是怎麼到你的所在
    (用左轉、右轉來表述),
  • 6:17 - 6:19
    接著再重述你從無線電
    聽到的所有資訊。
  • 6:19 - 6:23
    「找路程式」就是程式設計師
  • 6:23 - 6:26
    所謂的函數、子程式,或程序。
  • 6:26 - 6:30
    不論用哪個術語稱呼,
    背後的想法都相同——
  • 6:30 - 6:34
    把一組指令包裝起來,
    貼上標籤,方便重覆使用——
  • 6:34 - 6:37
    甚至可以被它自己使用。
  • 6:37 - 6:40
    在我們的例子中,
    採用它就非常完美——
  • 6:40 - 6:45
    只用三條指令
    就能繪製出整個網絡。
  • 6:46 - 6:48
    接著發生的狀況是:
  • 7:10 - 7:12
    當巡邏兵到轉角時,
  • 7:12 - 7:16
    艾希克和雷瑪臨時湊合出偽裝。
  • 7:16 - 7:20
    她們試圖混淆機器人,
    為海吉拖延時間。
  • 7:31 - 7:36
    最後,海吉的無線電傳來
    一連串指示,帶來了生機。
  • 7:36 - 7:40
    三人跳上傳輸帶,開始逃命,
  • 7:40 - 7:44
    而一整隊執法機器人正緊追在後。
Title:
挑戰|用程式設計師的方式思考,第八集
Speaker:
艾力克斯.羅森泰
Description:

這是我們的動畫系列《用程式設計師的方式思考》第八集。這系列一共有十集,主角是一名女孩艾希克和她的機器人夥伴海吉,他們要試圖拯救世界。兩人踏上冒險旅行,要收集三項寶物,且闖關過程得要解決一連串的程式設計謎題。

完整課程連結:https://ed.ted.com/lessons/the-gauntlet-think-like-a-coder-ep-8
課程設計:艾力克斯.羅森泰
導演:Kozmonot Animation Studio

more » « less
Video Language:
English
Team:
closed TED
Project:
TED-Ed
Duration:
08:01

Chinese, Traditional subtitles

Revisions