Return to Video

裂谷|用程式設計的方式思考,第六集

  • 0:09 - 0:11
    [用程式設計的方式思考]
  • 0:13 - 0:16
    [地點:198 森林]
  • 0:18 - 0:20
    [第六集 裂谷]
  • 0:22 - 0:27
    艾希克、海吉、奧特薇雅
    站在無底深谷的邊緣。
  • 0:27 - 0:29
    他們和高塔之間就只有這個深谷,
  • 0:29 - 0:33
    三個強大工藝品中的
    第二個就在這座塔內。
  • 0:33 - 0:38
    他們在守衛回來之前,
    還有一點時間可以設法越過深谷。
  • 0:38 - 0:43
    海吉的燃料已經快用盡,
    他無法帶艾希克飛過去。
  • 0:43 - 0:46
    剩下的唯一選擇,就是造橋。
  • 0:46 - 0:51
    幸運的是,附近有一疊疊的浮石,
    是可造橋的元件——
  • 0:51 - 0:55
    它們是奧特薇雅自己的發明
    ——叫做懸浮塊。
  • 0:55 - 0:57
    用能量激發其中一疊,
  • 0:58 - 1:02
    它們就會自行組合,跨越深谷,
    讓艾希克可以走過去。
  • 1:02 - 1:05
    但,當然,沒這麼簡單。
  • 1:06 - 1:10
    懸浮塊只有在完全
    對稱的時候才會穩定。
  • 1:10 - 1:13
    意即,它們必須形成一個序列,
  • 1:13 - 1:17
    順著看跟逆著看
    都要完全一樣才行。
  • 1:17 - 1:19
    每一疊開始的順序都是隨機的,
  • 1:19 - 1:24
    但在可以的情況下,
    都會自行排成對稱的形式。
  • 1:24 - 1:27
    如果出現無法達成對稱的情況,
  • 1:27 - 1:28
    橋就會崩垮,
  • 1:28 - 1:31
    橋上的人就會落入深谷中。
  • 1:32 - 1:33
    我們來看一個例子。
  • 1:33 - 1:36
    這一疊懸浮塊會自行穩定下來。
  • 1:36 - 1:40
    A 懸浮塊會先就位。再到 B。
  • 1:40 - 1:44
    最後是 C,在兩個 B 之間。
  • 1:44 - 1:47
    然而,如果有再多一個 A,
  • 1:47 - 1:50
    兩個 A 會先排好,
    接著是兩個 B,
  • 1:50 - 1:54
    但,現在就剩下一個 C
    及一個 A,無處可去,
  • 1:54 - 1:56
    這個結構就會崩垮。
  • 1:56 - 2:01
    力量球會讓海吉能夠
    用能量激發其中一疊懸浮塊。
  • 2:01 - 2:05
    艾希克要給海吉什麼樣的指令,
    才能讓他有效率地找到
  • 2:05 - 2:09
    一疊穩定的對稱懸浮塊,
    並用能量激發它們?
  • 2:09 - 2:13
    [若你想要嘗試解題,請在此暫停。]
  • 2:18 - 2:23
    對稱的例子包括 ANNA、
    RACECAR、MADAM IM ADAM。
  • 2:24 - 2:27
    計算一個字母出現在
    對稱排列中的次數,
  • 2:27 - 2:30
    能找出有幫助的模式。
  • 2:30 - 2:35
    [若你想要嘗試解題,請在此暫停。]
  • 2:35 - 2:38
    針對這個問題,咱們先來
    看一個天真的解決方案。
  • 2:38 - 2:43
    天真的解決方案是簡單、
    用蠻力、沒有最佳化的方式——
  • 2:43 - 2:45
    但能完成任務。
  • 2:45 - 2:48
    天真的解決方案
    可以協助分析問題,
  • 2:48 - 2:52
    且可以當作墊腳石,
    以想出更好的解決方案。
  • 2:52 - 2:54
    在這裡,天真的解決方案是
  • 2:54 - 2:57
    先選一疊懸浮塊,
    嘗試所有的排列組合,
  • 2:57 - 3:01
    再透過正向及逆向閱讀的方式,
    看看是否有一種組合是對稱的。
  • 3:02 - 3:06
    這個方法的問題
    是要花很大量的時間。
  • 3:06 - 3:09
    假設海吉嘗試一種
    組合需要一秒鐘,
  • 3:09 - 3:14
    若一疊中有十種不同的懸浮塊,
    就要花四十二天試盡所有組合。
  • 3:14 - 3:17
    因為需要的總時間
  • 3:17 - 3:20
    會隨懸浮塊數目的乘階而增加。
  • 3:20 - 3:23
    十個懸浮塊就會有三百萬種組合。
  • 3:23 - 3:28
    天真的解決方案告訴我們,
    我們需要一種更快的方法,
  • 3:28 - 3:31
    來辨別哪一疊懸浮塊
    能夠形成對稱排列。
  • 3:31 - 3:34
    一開始,直覺上很清楚,
    一疊懸浮塊中,
  • 3:34 - 3:38
    若每塊的字母都不同,
    就不可能形式對稱排列。為什麼?
  • 3:38 - 3:43
    若沒有重覆的字母,第一個
    和最後一個懸浮塊就不會相同。
  • 3:43 - 3:48
    所以,什麼情況下一疊懸浮塊
    能夠形成對稱的排列?
  • 3:48 - 3:53
    找出答案的方式之一,
    就是分析幾個既有的對稱排列。
  • 3:53 - 3:56
    在 ANNA 中,
    有兩個 A、兩個 N。
  • 3:56 - 4:01
    RACECAR 有兩個 R、
    兩個 A、兩個 C、一個 E。
  • 4:01 - 4:04
    MADAM IM ADAM
    有四個 M、
  • 4:04 - 4:07
    四個 A、兩個 D、一個 I。
  • 4:08 - 4:10
    這裡的模式是,有出現的字母
  • 4:10 - 4:13
    大部分都以雙數出現,
  • 4:13 - 4:17
    最多只有一個字母會出現一次。
    是這樣嗎?
  • 4:17 - 4:20
    如果 RACECAR 有三個 E,
    而不是一個呢?
  • 4:20 - 4:24
    我們可以把新增加的兩個 E
    補在兩端,仍然會對稱,
  • 4:24 - 4:26
    所以三個也可以。
  • 4:26 - 4:29
    但如果有三個 E 和三個 C,
  • 4:29 - 4:32
    最後一個 C 就沒地方放了。
  • 4:32 - 4:35
    所以,最一般化的洞見是,
  • 4:35 - 4:39
    最多只能有一個字母
    出現的次數是單數,
  • 4:39 - 4:41
    其他字母的出現次數都要是雙數。
  • 4:42 - 4:46
    海吉可以去計算每一疊懸浮石
    當中的字母數,整理成字典,
  • 4:46 - 4:49
    這是種很整齊的資訊儲存方法。
  • 4:49 - 4:54
    接著可以用迴圈來計算
    單數出現了幾次。
  • 4:54 - 4:59
    若一疊當中的單數字母不到兩個,
    它就可以形成對稱排列。
  • 4:59 - 5:03
    這個方法比天真的
    解決方案快非常多。
  • 5:03 - 5:06
    需要的時間不是
    階乘的,是線性的。
  • 5:06 - 5:10
    也就是說,需要的時間
    和懸浮塊的數目成正比。
  • 5:10 - 5:15
    現在只要為海吉寫一個迴圈,
    讓他分別接近每一疊懸浮塊。
  • 5:15 - 5:19
    在他找到可用的一疊之後就停止,
    這樣你就可以準備出發了。
  • 5:19 - 5:20
    結果,發生的狀況是:
  • 5:20 - 5:24
    海吉動作很快,但有太多疊了,
    他花了很長的時間。
  • 5:24 - 5:26
    太久了。
  • 6:18 - 6:20
    艾希克和海吉安全了。
  • 6:20 - 6:22
    但奧特薇雅卻沒這麼幸運。
Title:
裂谷|用程式設計的方式思考,第六集
Speaker:
艾力克斯羅森索
Description:

這是《用程式設計的方式思考》動畫系列的第六集。這十集的故事以一位女孩艾希克為主角,與她的機器人夥伴海吉一起嘗試拯救世界。他們踏上旅途,要收集三樣工藝品,在過程中還得破解一連串的程式謎題。

完整課程連結:https://ed.ted.com/lessons/the-artists-think-like-a-coder-ep-6

課程設計:艾力克斯羅森索
導演:Kozmonot Animation Studio

more » « less
Video Language:
English
Team:
closed TED
Project:
TED-Ed
Duration:
06:24

Chinese, Traditional subtitles

Revisions