什麼是演算法? - David J. Malan:英語精讀講義
TED-Ed
影片簡介:影片透過逐步改良「計算房間裡有多少人」的方法,介紹演算法的基本概念,並說明虛擬碼、迴圈、正確性、效率、邊界情況測試、程式錯誤與條件分支之間的關係。 主要英語知識點: 1. algorithm — 詞義與語域:理解這個詞在電腦科學中並非泛指一般「方法」,而是為了解決問題所設計的一組明確步驟,進而聽懂技術解說中程序如何被表示、逐步執行並產生結果。 2. corner case — 詞義與語域:辨識這個工程術語所指的罕見或邊界情況;這類情況可能揭露方案缺陷,因此可用來討論程式、規則或解決方案在一般範例之外是否仍然正確可靠。 3. only executes if — 文法與句型:掌握「只有符合指定條件才會執行」的條件邏輯表達方式,用來精確說明某項指令或分支何時運作,以及程式流程、規則觸發條件與例外處理方式。
本篇講解
algorithm:解決問題的明確程序
algorithm 指一組用來解決問題的明確指令。它不只是大概的想法或技巧;人或電腦都可以按照這些步驟執行。 在本句中,step by step 強調這些指令構成一個有順序的程序。迴圈和條件可以控制哪些步驟要重複或被選擇。
練習
在本句中,algorithm 是什麼意思?
- 任何與電腦有關的想法
- 一台進行計算的機器
- 用來解決問題的一組明確步驟
查看答案
用來解決問題的一組明確步驟
step by step:一步一步進行
step by step 表示把一件事分成幾個階段,按照順序一步一步進行。在本句中,它說明這些指令透過有順序的程序來解決問題。 這裡的 step 指程序中的一個「步驟」,不是實體的階梯。
練習
用表示「一步一步」的固定詞組完成指示:To avoid mistakes, follow the checklist ____.
查看答案
step by step
句尾 as well 表示「也」
這裡的 as well 表示「也」。它位於子句末尾;前文把演算法和電腦連結起來之後,這個片語又把人類加入討論:人類也有演算法。 在這種用法中,要把 as well 當成一個表示補充的完整片語。這裡的 well 不是「好」或「以良好方式」的意思。
練習
用表示「也」的目標片語完成句子:Nina wants to join the game, and Omar wants to join ____.
查看答案
as well
For instance, how would you go about counting the number of people in a room? 講解
0:26例如,你打算如何計算一個房間裡的人數?
For instance:引出具體例子
For instance 告訴聽者,接下來會出現一個具體例子。這裡的說明從「人類會使用演算法」這個概括性觀點,轉到「計算房間裡的人數」這個具體任務。 作為組織資訊的片語,它幫助聽者把例子和前面的概括性觀點連結起來。它並不表示一件事在另一件事之後發生。
練習
For instance 在下面這段話中有什麼作用?“Many materials can be recycled. For instance, clean glass jars can go in the recycling bin.”
- 它表示說話者正在修正先前的錯誤。
- 它引出前面概括性觀點的一個具體例子。
- 它表示時間順序中的下一步。
查看答案
它引出前面概括性觀點的一個具體例子。
go about counting:詢問如何著手完成任務
在 go about doing something 這個結構中,go about 表示以某種方式著手並處理一項任務。這裡的 how would you go about counting 是在問你會用什麼方法計算人數,而不是問你會不會數數。 about 後面的動詞要用 -ing 形式,例如 go about counting、go about fixing。這個片語強調處理事情的方法或過程,不表示在某個地方四處走動。
練習
用 repair 的正確形式完成問題:How should we go about ____ the damaged chair?
查看答案
repairing
if you're like me:邀請聽者產生共鳴
If you're like me 從字面上看是在設定「如果你跟我相似」這個條件,但這裡是友善的口語開場。說話人先提到自己的習慣,暗示聽者也可能有相同的習慣。 這個表達能緩和說法:說話人沒有斷言每個人都會逐一指著數,而是說這是我會做的事,你可能也會這樣做。它通常只比較目前話題中的某個習慣或偏好,不是在比較兩人的全部個性。
練習
判斷這個用法:在輕鬆友善的簡報中,If you're like me 可以引出說話人自己的習慣,而不會聲稱每個人都這樣做。
- 正確
- 錯誤
查看答案
正確
one at a time:每一輪一個人或一件事
one at a time 表示每一輪只處理一個人或一件事。在這句話中,它說明說話者如何指人:先指一個人,再指下一個,這樣就能依序計數。 at a time 表示每一輪處理的數量,並不是指時鐘上的時間或某個特定時刻。
練習
老師希望孩子們逐一走到桌前,而不是一起過來。哪一句指示最合適?
- Please come to my desk one at a time.
- Please come to my desk at one time.
- Please come to my desk one time.
查看答案
Please come to my desk one at a time.
count up:從較小的數字數到較大的數字
count up 表示依照數值遞增的順序說出或記錄數字,例如 0、1、2、3。在這句話中,計數從零開始,每計入一個人,數字就隨之增加。 up 這個小品詞賦予動詞「數值增加」的方向,並不是指物體向上移動。
練習
用表示數字遞增方向的小品詞完成指示:Start at zero and count ____ to ten.
查看答案
up
and so forth:表示清楚的清單或規律繼續
and so forth 告訴聽者,清單或規律還會按照同類內容繼續。說到「1、2、3、4」後,接下來的數字很容易推知,所以說話者不再逐一說出。 要把它當作一個用在清單結尾的完整表達,意思是「還有同類內容繼續」,而不是按照 forth 表示方向的字面意思來理解。它和 and so on 意思相近。
練習
在「The club offers chess, music, painting, and so forth」中,and so forth 表示什麼?
- 這份清單已經轉到新的主題。
- 後面還有更多同類項目。
- 列出的項目都是錯誤。
查看答案
後面還有更多同類項目。
a bit more formally:稍微提高正式程度
a bit more formally 表示「以稍微更正式的方式」。more formally 說明要如何表達這個想法,a bit 則限制改變的程度,表示只改變一點。 這裡說話者正從日常描述轉向虛擬碼。這個片語讓這項轉換聽起來幅度不大,而不是要徹底改變表達風格。
練習
使用本課中表示「以稍微更正式的方式」的片語完成句子:Could you state the rule ____?
查看答案
a bit more formally
pseudocode:不用可執行程式碼描述演算法邏輯
pseudocode(偽程式碼)是一種非正式、方便人閱讀的演算法描述方式,用來說明演算法的步驟與邏輯。它通常看起來像程式語言,但不必遵守某一種語言的精確語法。 在本句中,in pseudocode 說明這個想法將以什麼形式表達。後面的英語式指令是為了清楚解釋演算法,不一定能由電腦直接執行。
練習
關於 pseudocode,哪一項說法正確?
- 它是程式執行時發現的錯誤清單。
- 它是必須嚴格遵守某種程式語言規則的 source code。
- 它以類似程式碼的形式描述演算法,但不一定能直接執行。
查看答案
它以類似程式碼的形式描述演算法,但不一定能直接執行。
Let n equal zero:設定變數的初始值
在數學和偽程式碼中,Let n equal zero. 的意思是「定義或設定 n 的值為 0」。它先為 n 設定初始值,後面的步驟再使用或改變 n。 這裡的 let 用來引入定義或假設,不表示「允許」。結構是 Let + variable + equal + value,而且在 let 後面要使用 equal 的原形。
練習
使用 Let ... equal ... 結構補完這段偽程式碼指令:____ total ____ zero before counting.
查看答案
Let · equal
For each person in room:偽程式碼迴圈
For each ... 引出一個迴圈:後面的指令會對集合中的每個成員執行一次。這裡的 person in room 指出要處理的集合,因此每個人都會觸發後續步驟。 在一般英文中,通常會說 for each person in the room。偽程式碼為了讓指令簡短,常會省略 the 這類小詞。
練習
在這段偽程式碼中,For each person in room 表示要做什麼?
- 只對房間裡的第一個人執行後續指令
- 對房間裡的每個人執行一次後續指令
- 為每個人準備一個房間
查看答案
對房間裡的每個人執行一次後續指令
set n = n + 1:更新變數
在偽程式碼中,set 表示把值指定給變數。先使用 n 目前的值計算 n + 1,再把結果存回 n。每執行一次這項指令,n 就增加 1。 這裡的等號是指定值指令的一部分,不是在斷言 n 在數學上永遠等於 n + 1。
練習
偽程式碼 set n = n + 1 執行一次後會發生什麼?
- n 的值被刪除
- 程式檢查 n 是否等於 n + 1
- n 目前的值增加 1
查看答案
n 目前的值增加 1
How to interpret ...?:標題式提問
在這句話中,How to interpret this pseudocode? 是一個標題式問題。它讓講解從展示偽程式碼推進到說明每一行的意思。 how to + 原形動詞表示做某件事的方法。這裡是完整直接問句 How should we interpret this pseudocode? 的簡略形式,主要功能是組織接下來的講解。
練習
判斷正誤:在教學內容中,How to interpret this pseudocode? 可以像標題一樣作為轉折,引出後面的解釋。
- 正確
- 錯誤
查看答案
正確
so to speak:標示近似或比喻性的說法
so to speak 是插入語,意思是「如果可以這樣說」。這裡它緩和了 declares:說話者借用一個有用的技術說法,而不是堅稱這是唯一完全精確的描述。 它提醒聽者把這個措辭理解為近似或比喻,而不是把它當成要求人真的開口說話。
練習
用表示 second home 是非字面描述的三個英文單字完成句子:After so many late nights there, the library became our second home, ____.
查看答案
so to speak
程式設計中的 declares ... initializes its value to zero
在程式設計的說明中,declares a variable 表示把變數引入程式碼或偽程式碼,通常會確定它的名稱,有時也會確定型別。這裡的變數名稱是 n。 initializes its value to zero 表示為這個變數設定起始值 0。宣告和初始化是兩個不同的動作,即使同一行可以同時完成它們。
練習
請將 declare 和 initialize 變成正確形式來完成句子:The first line ____ a variable named total and ____ it to zero.
查看答案
declares · initializes
with which we're counting:介系詞前置的正式關係子句
with which we're counting 是修飾 the thing 的關係子句。which 指回 the thing,with 表示它是用來計數的工具,也就是「我們用來計數的東西」。 把介系詞放在 which 前面會形成較正式的「介系詞 + which」結構。在本句中,the thing 指變數 n;它是計數器,而不是被計數的對象。
練習
用指事物的關係代名詞完成這個正式關係子句:The camera with ____ we filmed the birds was very light.
查看答案
which
After all:補充支持前文的理由
After all 引出一個支持或解釋前一句話的理由。這裡它表示,把零當作計數起點很合理,因為計數尚未開始。 它先提出判斷或結論,再提醒聽者注意理由,藉此組織資訊。在這裡,它大致表示「別忘了這個事實」,而不是時間順序上的「所有事情之後」。
練習
哪一句使用 after all 補充一個支持前文的理由?
- After all the work, we went home.
- We checked the map after all the visitors left.
- We should check the map; after all, this is our first visit.
查看答案
We should check the map; after all, this is our first visit.
haven't counted anything yet:截至目前還沒有數
Haven't counted 是現在完成式的否定形式:have not + 過去分詞。它表示從過去到目前這個時間點,計數一直沒有發生,所以現在的計數仍然是零。 在否定句中,anything 表示沒有數任何東西。句尾的 yet 表示截至目前這件事仍未完成,通常也暗示之後可能會發生。
練習
用縮寫形式 haven't ... yet 完成句子,表示截至目前還沒有進行任何測試:We ____ run any tests ____.
查看答案
haven't · yet
just a convention:常見做法,而非硬性規則
在這個技術語境中,convention 指大家通常採用的共同做法,不是「會議」,也不是硬性要求。just a convention 表示把變數命名為 n 是常見選擇,但換成其他有效名稱也可以。 慣例是可選的,意思是程式語言並未強制這樣做;不過,遵循慣例仍能讓其他人更容易讀懂程式碼。
練習
這句話中的 just a convention 是什麼意思?
- 這是一場討論變數名稱的正式會議。
- 這是一種常見做法,但也可以使用其他有效名稱。
- 這是所有程式都必須遵守的規則。
查看答案
這是一種常見做法,但也可以使用其他有效名稱。
could have called it:過去本可這樣命名,但沒有採用
Could have called it 使用 could have + 過去分詞來回顧過去一個沒有採用的選擇。說話人當時可以選擇另一個名稱,但實際選了 n。 這裡的 called 表示「替……取名」,結構是 call + 受詞 + 名稱。have 把這種可能性放在過去;could call it 通常表示現在或未來可以這樣命名。
練習
使用 could 和 call 完成句子,表示過去有一個未採用的命名選擇:We ____ something else, but we chose Horizon.
查看答案
could have called it
loop:程式中重複執行的步驟序列
在程式設計中,loop 指「迴圈」,也就是讓一連串步驟反覆執行的結構。loop 後面的片語直接說明了它:這些步驟會重複若干次。 這裡的 loop 描述的是程式流程,不只是圓形。看到程式碼或虛擬碼中的 loop 時,要找出哪些指令屬於會重複執行的區塊。
練習
在程式設計的說明中,句子“The loop checks every message in the inbox”裡的 loop 是什麼意思?
- 重複執行一組指令的結構
- 只能執行一次的單一指令
- 螢幕上的圓形圖像
查看答案
重複執行一組指令的結構
So, in our example, the step we're taking is counting people in the room.
1:17所以,在我們的例子中,我們採取的步驟是計算房間裡的人數。
The indentation implies:格式顯示程式碼結構
indentation 指行首讓一行內容向右移的空白,也就是「縮排」。在程式碼或虛擬碼中,這種間距可以顯示哪些指令屬於同一個區塊。 The indentation implies that... 表示這種格式為後面的結論提供了線索。這裡,縮排顯示第三行位於迴圈內,因此第三行才是會重複執行的部分。
練習
在程式碼說明“The indentation implies that the message is part of the loop”中,The indentation implies 是什麼意思?
- 間距表示訊息中有錯誤。
- 間距使程式顯示這則訊息。
- 間距為程式碼結構提供了線索。
查看答案
間距為程式碼結構提供了線索。
what the pseudocode is saying is that...:解釋虛擬碼的意思
What X is saying is that... 這個框架可以把 X 中的資訊改寫成白話解釋。這裡的 saying 表示「表達、意思是」,不是說某個事物真的在說話。 what 子句先指出要解讀的資訊來源,is that 再引出具體解釋。這樣可以把資訊來源和後面的解釋清楚分開。
練習
使用 What X is saying is that... 框架完成這句解釋:____ every visitor must sign in.
查看答案
What the notice is saying is that
after starting at zero:用 after + -ing 表示步驟順序
after starting at zero 使用 after + -ing 表示一個步驟先於下一個步驟發生。在本句中,我們先讓計數從零開始,然後再增加 n。 starting 是介系詞 after 後使用的 -ing 形式,不是現在進行式的主要動詞。這種簡短結構常見於流程說明和操作指示。
練習
使用 after + -ing 片語表示檢查先發生:____, click Submit.
查看答案
After checking the address
increase n by one:by 表示變化幅度
在 increase n by one 中,n 是被改變的數值,by one 表示變化的幅度。要在目前的值上加 1;by one 並不是說最後的值是 1。 可套用的結構是 increase + 數值 + by + 幅度。例如,n 原本是 4,增加一之後就是 5。
練習
一個計數器從 7 變成 8。請用 by 和英文數字單字完成句子:Increase the counter ____.
查看答案
by one
bang on it a bit:非正式地動手測試
這裡的 bang on it a bit 是技術討論中的非正式比喻,表示用幾種不同情況試驗某個系統或想法,看看它是否會出問題,並不是真的動手敲打。 這個說法帶有對它施加一些壓力的感覺,而不只是靜態查看。不過在其他情境中,bang on it 可能真的表示反覆敲打,因此此處的「測試」意思來自技術討論的上下文。
練習
在軟體討論中,"Let's bang on it a bit" 最可能是什麼意思?
- 停止處理它。
- 用幾種不同情況測試一下它。
- 反覆敲打電腦。
查看答案
用幾種不同情況測試一下它。
Does it work if ...?:測試一個條件
Does it work if ...? 用來詢問某個方法、系統或方案在 if 後面的條件下是否仍然有效。這裡的 it 指前面提到的演算法,work 表示「按預期運作」或「有效」,不是「做工作」。 可以用 Does it work if + 條件? 來檢驗假設,或確認一個解決方案在什麼情況下會失效。
練習
設計者想測試智慧門鎖在停電時是否仍能使用。哪個問題表達了這個意思?
- Does it work because the power goes out?
- Does it work, so the power goes out?
- Does it work if the power goes out?
查看答案
Does it work if the power goes out?
increment n by one:把變數加 1
Increment 是技術語境中的動詞,意思是「讓一個數值按指定幅度增加」。在 increment n by one 中,n 是被改變的值,by one 表示變化量:新值等於原值加 1。 本句描述的是重複更新:每處理一個人,就把 n 加 1。可遷移的結構是 increment + 數值 + by + 增量。
練習
用表示變化量的介系詞完成這條技術指示:Increment the retry count ____ one after each failed attempt.
查看答案
by
So, on the first trip through the loop, we update n from zero to one. 慣用語
1:49所以,在第一次進入迴圈時,我們將 n 從零更新為一。
trip through the loop:一次迴圈迭代
在這句話中,a trip through the loop 指迴圈本體執行一次,也就是一次迭代。the first trip 是迴圈內的步驟第一次執行。 trip 用路徑來比喻抽象的程式流程。可以想像進入迴圈、把裡面的步驟走一遍再出來;每完整走一遍,就是 one trip through the loop。
練習
用標示的非正式技術表達補完整句子:On the second ____, the program removes one duplicate.
查看答案
trip through the loop
On the second trip through that same loop, we update n from one to two.
1:52在第二次進入同一次迴圈時,我們將 n 從一更新為二。
by this algorithm's end:截止點上的結果
這裡的 by this algorithm's end 意思是「到這個演算法完成時」。by 標示一個截止點:到達這個時間點時,n 已經變成二。這裡的 by 不是「使用這個演算法」。 this algorithm's end 是 the end of this algorithm 的所有格表達。by + 截止點 適合說明某個結果不晚於該時間點已經完成或成立。
練習
哪一句表示報告必須不晚於下午 5 點完成?
- The report must be finished at 5 p.m.
- The report must be finished by 5 p.m.
- The report must be worked on through 5 p.m.
查看答案
The report must be finished by 5 p.m.
which indeed matches:確認前面的結果
這裡,which 引出一個補充說明的關係子句,指向前面的整個結果 n is two,而不是 people 或 the room。這個子句補上一項核對:該結果與實際人數一致。 indeed 加強確認語氣。因此,which indeed matches... 可用於先提出一個結果,再把它與資料、預期或現實事實進行核對。
練習
在例句中,which 指的是什麼?
- 房間
- 前面的結果 n is two
- people 這個字
查看答案
前面的結果 n is two
So far, so good:正面但暫時的進度評估
So far, so good. 是一個固定表達,意思是事情到目前為止進展順利。它對目前進度作出正面評估,同時不排除之後可能出現變化。 這裡說話者是在總結一個階段性結果,並不是宣布最終成功。應把整句當成一個固定表達來理解,不要認為兩個 so 的意思和作用完全相同。
練習
判斷:So far, so good. 表示整項任務已經完成,而且一定會成功。
- 錯誤
- 正確
查看答案
錯誤
corner case:不常見的測試條件
在技術討論中,corner case 指可能暴露系統在一般使用時看不出的問題之不常見條件或輸入。 這裡把「零個人」選作這種特殊測試條件。這個詞不是指實際的角落;它表示要用極端或少見的輸入,測試計數方法是否仍然有效。
練習
在軟體測試中,哪種情況最適合稱為 corner case?
- 用有效帳號測試一般的登入流程
- 測試清單包含零個項目時會發生什麼
- 為登入按鈕選擇一種新顏色
查看答案
測試清單包含零個項目時會發生什麼
Suppose that:設定一個假設條件
Suppose that 用來引入一個條件,並在接下來的討論、計算或測試中暫時把它當成真的。它是在為推理設定起點,並不是說說話者猜這個條件可能是真的。 結構是 Suppose that + 子句。that 可以省略:Suppose there are zero people 的意思相同。
練習
使用 Suppose that 設定這個假設測試條件:____ the phone has no saved contacts. What should the app display?
查看答案
Suppose that
doesn't execute at all:程式碼一次也沒有執行
這裡的 execute 是程式設計用語,表示「執行」一行程式碼。Line three doesn't execute 表示程式流程從未到達並執行第三行。 at all 加強了 doesn't 的否定語氣。這個片語表示該行一次也沒有執行,而不是執行了但結果錯誤。
練習
在程式設計的討論中,「The line doesn't execute at all」是什麼意思?
- 這一行一次也沒有執行。
- 這一行執行了,但行為或結果不正確。
- 這一行執行了,但速度很慢。
查看答案
這一行一次也沒有執行。
Pretty simple, right?:輕鬆尋求確認
這裡的 pretty 表示「相當、頗為」,所以 pretty simple 是說這個概念似乎很容易理解。pretty 在此不是「漂亮」的意思。 句尾的簡短問句 right? 用來輕鬆尋求確認:說話者邀請聽者表示同意或表明自己跟上了。在輕鬆的講解中,它是一種快速互動確認,並不是在詢問方向或權利。
練習
在「Pretty simple, right?」中,「right?」的主要功能是什麼?
- 它輕鬆地請聽者確認,或表示自己已經跟上。
- 它要聽者朝某個方向移動。
- 它正式證明這項任務很簡單。
查看答案
它輕鬆地請聽者確認,或表示自己已經跟上。
Surely we can do better:把討論轉向改進
Surely we can do better 不只是表達信心。它也在主張:目前的方法還不夠好,應該能找到改進的方法。 作為轉場句,它把討論從指出效率不佳的方法,推進到尋找更好的方案。Surely 把這個結論說成合情合理,並期待聽者認同。
練習
在簡報中,Surely we can do better 主要發揮什麼作用?
- 它表示目前的做法已經是最好的選擇。
- 它要求聽眾解釋這個做法為什麼失敗。
- 它主張目前的做法很可能還能改進。
查看答案
它主張目前的做法很可能還能改進。
Why not count:用 Why not + 原形動詞提出建議
Why not count...? 使用 Why not + 原形動詞來提出建議。這裡說話者是在提議一次數兩個人,並不是主要想請對方解釋原因。 疑問句的形式為討論保留空間:如果這個想法不可行,對方仍然可以說明實際原因。
練習
用 try 完成這個建議:Why not ____ the simpler method?
查看答案
try
Instead of counting ... why not count:提出替代做法
Instead of doing X, why not do Y? 這個框架把原本的做法和建議的替代做法放在一起。這裡,X 是一個一個地數,Y 是兩個兩個地數。 instead of 後面接名詞或 -ing 形式,所以這裡用 counting。why not 後面接原形動詞,所以這裡用 count。這個框架可用來建議改採另一種方法。
練習
將 check 和 use 改成正確形式,完成這個建議句:Instead of ____ every email one by one, why not ____ a filter?
查看答案
checking · use
optimization:以明確效率目標為導向的最佳化
在這個句子中,optimization 指讓計數方法更有效率的一項具體改動:從一次處理一個人改成一次處理兩個人。 在技術語境中,optimization 是為了達成某個目標而改進演算法、程式或流程,例如提升速度、降低記憶體用量或減少工作量。它指有目的的改進,而不是籠統地說某件事變好了。
練習
在討論如何讓程式執行得更快時,optimization 最可能是什麼意思?
- 讓系統更有效率的一項具體改動
- 列出所有可能發生的錯誤
- 將程式碼翻譯成另一種語言
查看答案
讓系統更有效率的一項具體改動
twice as fast as:速度正好是兩倍
twice as fast as 表示一個事物的速度是比較對象的兩倍。這裡比較的是這個演算法和上一個演算法的速度。 結構是「倍數 + as + 形容詞或副詞 + as + 比較對象」。在 twice as fast as the last 中,twice 表示倍數,fast 表示比較的性質,第二個 as 引出比較對象。
練習
補上倍數比較中缺少的兩個字:The new scanner is twice ____ fast ____ the old one.
查看答案
as · as
As before:連回先前相同的情況
As before 表示「和前面的情況一樣」。它指回已經說過的資訊,告訴聽者目前的情況遵循相同的模式。 這裡它用來組織說明:第三行仍然不會執行,和前面的情況相同。這裡的 As 表示相似,不表示原因。
練習
這裡的 As before 有什麼作用?The first test had no errors. As before, the second test finished without any errors.
- 它把這次結果和先前案例中的相同結果連結起來。
- 它表示稍後還會再次進行測試。
- 它說明測試沒有錯誤的原因。
查看答案
它把這次結果和先前案例中的相同結果連結起來。
用 What if there are ...? 檢驗一種可能情況
在這句話中,What if 引入一種假設情況:假設房間裡有三個人。說話者不是在確認房間目前有多少人,而是在問這個條件下該方法會產生什麼結果。 there are 在這個假設中構成表示「有某些人或事物存在」的部分。這個結構可以用來檢驗:改變一個條件後,前面的結論、計畫或流程是否仍然成立。
練習
用本課標出的四字結構完成問句:____ five passengers in the car?
查看答案
What if there are
用 But then what? 指出缺少的下一步
But 表示從前一步轉折,then 指向流程中的下一個階段或結果。what 代替了更完整的問題,例如 What happens next? 或 What do we do next? But then what? 作為一個獨立的簡短問句,會打斷目前的說明並點出缺口:雖然已經說明了一個步驟,但流程還沒有完成。它藉由追問缺少的下一步來推動推理。
練習
在流程說明中,But then what? 通常有什麼作用?
- 回到一個無關的過去事件。
- 宣布所有步驟都已完成。
- 指出流程走到了一個尚未解決的下一步。
查看答案
指出流程走到了一個尚未解決的下一步。
no longer applies:規則不再適用
本句中,no longer applies 表示第二行原本符合這個情況,但現在所需的條件已經不存在,所以不再適用。apply 在這裡是「對某個情況適用或有效」,不是「提出申請」。 no longer + 動詞 表示從「以前成立」變成「現在不成立」。規則、條件、說明或折扣作主詞時,apply 表示它們適用於某個情況。
練習
哪一種情況最適合用 The rule no longer applies 來描述?
- 這項規則以前適用於該情況,但某個改變使它現在不再相關。
- 這項規則從來沒有適用於該情況。
- 有人正在申請制定一項新規則。
查看答案
這項規則以前適用於該情況,但某個改變使它現在不再相關。
buggy:含有缺陷的軟體或演算法
在技術討論中,buggy 是形容詞,表示軟體、演算法或功能含有 bug,可能產生錯誤結果或運作不穩定。本句用它形容一個有錯誤的演算法。 buggy 比單純說 wrong 更具體:它指出技術系統的設計或實作中有缺陷。這裡的 bug 是軟體或工程缺陷,不是昆蟲。
練習
在技術語境中,哪一句自然地使用了 buggy?
- This pencil is buggy because it needs sharpening.
- The new app is still buggy and sometimes crashes.
- The developer is buggy because she made a typo.
查看答案
The new app is still buggy and sometimes crashes.
redress:正式表示糾正或補救問題
這裡的 redress 表示「糾正或補救問題」。說話者正從指出演算法中的缺陷,轉向嘗試用新的虛擬碼修復它。 這個字強調把錯誤的狀況導正;在這個語境中與衣服無關。
練習
在例句中,redress 是什麼意思?
- 用紅色寫程式碼
- 換上不同的衣服
- 糾正或補救問題
查看答案
糾正或補救問題
that only executes if there's one person we could not pair with another. 文法
4:08只有當有一個人無法與別人配對時才會執行。
a condition, otherwise known as a branch:兩個控制流程術語
在這段程式講解中,condition 是決定某段程式碼是否執行的真/假測試,而 branch 是依照測試結果選擇的程式碼路徑或區塊。otherwise known as 在這裡把 branch 當作正在討論的條件部分的另一種稱呼引出來。 這種說法並不完全精確:condition 是測試,branch 是程式針對某個結果執行的內容。這裡,只有當有一個人仍未配對時,相關的 branch 才會執行。
練習
哪一項最精確地說明 condition 和 branch?
- condition 是註解;branch 是檔案名稱。
- branch 是真/假測試;condition 是依結果選擇的程式碼路徑。
- condition 是真/假測試;branch 是依結果選擇的程式碼路徑。
查看答案
condition 是真/假測試;branch 是依結果選擇的程式碼路徑。
only executes if:說明必要的觸發條件
在 only executes if... 中,only 限定的是執行條件:只有 if 子句中的條件成立,動作才可能執行;條件不成立時就不能執行。它不是說這個動作只執行一次。 這個結構把 if 子句當作程式碼、指令或自動化步驟執行時所必需的觸發條件。
練習
使用 only executes if 完成條件句:The shutdown command ____ the temperature rises above 40 degrees.
查看答案
only executes if
whether there's one or three or any odd number:涵蓋所有情況
在 whether there's one or three or any odd number... 中,whether 引出多種可能情況,每個 or 再加入一種情況。主要子句說明這些情況的結果都相同:演算法能計算所有奇數人數的情況。 這裡的 whether 不是在提出是非問句。one 和 three 是例子,any odd number 則把範圍擴展到整個奇數類別;整體意思是「不論實際屬於哪種情況」。
練習
這裡的 whether there's one or three or any odd number 是什麼意思?
- 說話者正在詢問房間裡有多少人。
- 演算法能計算所有奇數人數的情況。
- 演算法只在剛好有一個人或三個人時進行計算。
查看答案
演算法能計算所有奇數人數的情況。
count in threes or fours:三個或四個一數
count in threes or fours 表示「三個一數或四個一數」,也就是以三或四為分組大小或計數步長。例如,三個一數會得到 3、6、9、12。 結構是 count in + 複數數字詞,例如 count in twos、count in fives、count in tens。這裡的 in 表示每組的數量或每次計數的步長,不表示地點。
練習
請用 in + 複數數字詞完成句子,讓每次計數增加三:Let's count ____: three, six, nine, twelve.
查看答案
in threes
beyond that:超過剛才提到的限制
在本句中,beyond that 表示「超過剛才提到的範圍或限制」。that 回指前面討論的較大計數步長,beyond 則表示如果再往上增加,用手指點數會更困難。 beyond 不只表示物理空間。可遷移的 beyond that 常表示「如果超過那個數字、程度、階段或限制」。
練習
在句子 “The first ten pages are easy, but beyond that the material gets harder,” 中,beyond that 是什麼意思?
- 還沒到第十頁
- 書本的後面
- 前十頁之後
查看答案
前十頁之後
get a little bit difficult to point:變得有點難以指認
這裡的 get 表示「變得」:原本還容易做的動作後來變難了。a little bit 緩和了 difficult 的程度,所以意思是「有點難」,不是「完全做不到」。 to point 這個不定詞說明變難的是哪一個動作。在本句中,point 是動詞,表示「用手指逐一指出」,不是表示「觀點」或「分數」的名詞。
練習
用表示「變得有點難以……」的目標片語完成句子:When the directions include too many steps, they ____ follow.
查看答案
get a little bit difficult to
At the end of the day:引出最終結論
At the end of the day 是慣用語,意思是「考量所有細節之後」或「歸根究柢」。它表示說話者要從補充細節轉到主要結論,並不是指傍晚的某個時間。 這裡,它把後面的內容標示為需要記住的核心定義:無論由電腦或人來執行,演算法都是解決問題的指令。
練習
用引出實際最終結論的慣用語完成句子:____, the team needs a plan everyone can follow.
查看答案
At the end of the day
whether executed by computers or humans:精簡的被動 whether 子句
完整形式是 whether algorithms are executed by computers or humans。這裡省略了重複的主詞 algorithms 和被動結構所需的 be 動詞,因為可以從主要子句中補出來。 這個精簡子句加入一個條件,表示兩種執行者中無論是哪一種都不影響結論。它修飾 algorithms,並引出主要陳述;它不是另一個主要子句。
練習
哪一個完整子句最準確地展開了例句中的 whether executed by computers or humans?
- whether they are executed by computers or humans
- whether computers are executed by humans
- whether they execute computers or humans
查看答案
whether they are executed by computers or humans
with which to solve problems:正式表達所使用的手段
with which to solve problems 修飾 a set of instructions。which 回指這套指令,with 表示這些指令是解決問題時使用的手段。 「名詞 + 介系詞 + which + to 不定詞」是一種精簡、正式的結構,用來表達某個事物可能的用途。這裡表示「某人可以用來解決問題的一套指令」;並不是說 instructions 在文法上是 solve 的執行者。
練習
哪一個選項最準確地改述了 a set of instructions with which to solve problems?
- a set of instructions that someone must solve
- a set of instructions that someone can use to solve problems
- a set of instructions that solve every problem by themselves
查看答案
a set of instructions that someone can use to solve problems
What problem would you solve...?:邀請對方想像一種選擇
What problem would you solve...? 是一個開放式問題,邀請聽者想像一種可能的選擇,並把某個概念連結到自己的情境。它不要求唯一答案。 這裡的 would 建立了一個假設性選擇:如果你可以使用演算法,你會選擇解決哪個問題?在這個問題中,它不表示過去。
練習
在 What problem would you solve with an algorithm? 中,would 的主要作用是什麼?
- 詢問一個過去已經解決的問題。
- 命令聽者解決某個特定問題。
- 邀請聽者想像一種可能的選擇。
查看答案
邀請聽者想像一種可能的選擇。