← 回部落格 學習方法

用數學公式記英文文法:把規則變成方程式

威威 Willy · 2025-12-25

威威學長|跨科學習系列


$$S + V + O$$

這不是數學,是英文句子的骨架。主詞、動詞、受詞。

會說「這條式子很眼熟」的人,通常文法也記得比較牢。原因不神祕:死背靠記憶,記憶會衰退;理解靠邏輯,邏輯用不壞。而英文的核心文法,大部分真的可以被寫成這種樣子:骨架不動,內容可換。

我在德國慕尼黑工大(TUM)讀數學的時候,課堂上幾乎都在做符號操作:教授寫一個定義,學生推導性質,性質變成定理,定理再套到下一個問題。後來我把同一種想法搬到英文文法上。如果一條規則可以用類似公式的方式寫出來,它就變成可以推導的東西;寫不出來的,才真的是需要死記的例外。

時態是一個時間變數

$$V(t) \quad \text{其中} \quad t \in \{\text{past, present, future}\}$$

$t$ 是時間,$V$ 是動詞。給不同的 $t$,動詞就跟著變形:

  • $t = \text{present}$ → $V(s/es)$(第三人稱加 s)
  • $t = \text{past}$ → $V\text{-}ed$ 或不規則變化
  • $t = \text{future}$ → will + $V_{\text{原形}}$

這樣看,時態就不是 16 種要死背的組合,而是一個「帶時間參數的函數」。你要做的只是選對 $t$。

十條規則,套上公式

現在簡單式:常數函數

$$S + V(s/es) + O \quad \text{(常態)}$$

描述恆常為真的事、習慣、事實。對應數學裡的常數函數 $f(x) = c$。

Water boils at 100°C.

不管什麼時候、什麼地點,水的沸點都是 100°C。

第三人稱單數的 $s/es$ 是一個條件運算子:

$$V' = \begin{cases} V + s/es & \text{if } S \in \{\text{he, she, it}\} \\ V & \text{otherwise} \end{cases}$$

否定與疑問:do/does 吸收變形

否定:$S + \text{do/does} + \text{not} + V_{\text{原形}} + O$ 疑問:$\text{Do/Does} + S + V_{\text{原形}} + O?$

關鍵在這裡:do/does 出現之後,主要動詞要退回原形。為什麼?因為 does 已經把第三人稱單數的資訊帶走了,speaks 不需要再掛一次 $s$。

$$\text{Does} + S_{\text{3rd}} + V_{\text{原形}} \quad \text{(does 吸收了 } V \text{ 的變形)}$$

很多學生寫出 "Does she speaks?",這是把同一個變形掛了兩次。

過去簡單式:位移運算子

$$S + V\text{-}ed + O$$

過去式把動作從「現在」平移到「過去」。規則動詞加 $ed$,不規則動詞有自己的對照表。

$$V_{\text{past}} = V + \text{shift}_{\text{past}}$$

否定和疑問:did 出現之後動詞退回原形,理由跟 does 一樣,did 已經吸收了過去式的位移運算。

未來式:will 是預測運算子

$$S + \text{will} + V_{\text{原形}} + O$$

$$T_{\text{future}} = T_{\text{now}} + \text{will}$$

will 是外推(extrapolation),根據一般規律預測;be going to 是內推(interpolation),根據現有證據預測。兩者的確定感來源不同。

情態動詞 + 原形:模組組合

can, could, may, might, must, should, would 加上原形動詞,是英文裡最常見的組合之一:

$$\text{modal} + V_{\text{原形}} = \text{情態表達}$$

  • can + go → can go(能力)
  • must + study → must study(必要)
  • should + rest → should rest(建議)

當 modal 用過去式形態(could, would, might),表達就變得更「不確定」或「更禮貌」:

  • could + go → could go(過去能力/委婉)
  • would + go → would go(意願/假設)
  • might + go → might go(可能性較低)

數學上,這像是給函數加上一個模組參數:

$$V_{\text{modal}} = \text{modal}(V)$$

modal 是修飾運算子:它改變 $V$ 的語氣,但不改變 $V$ 的時態。

對過去的推測:modal + have + 過去分詞

$$\text{modal} + \text{have} + V\text{-}pp$$

  • would have + gone → would have gone(過去的假設結果)
  • should have + studied → should have studied(過去應該做但沒做)
  • could have + won → could have won(過去有能力但沒做到)
  • must have + left → must have left(過去一定發生了)

$$V_{\text{modal-past}} = \text{modal}(\text{have} + V\text{-}pp)$$

這是「模組組合」再加一層「時間位移」的雙重運算。掌握這一條跟上一條,情態動詞的核心用法就差不多了。

現在完成式:累積總和

$$S + \text{have/has} + V\text{-}pp + O$$

$$\text{experience} = \sum_{t=t_{\text{start}}}^{t_{\text{now}}} \text{events}(t)$$

I have visited 15 countries.

從我出生到現在,總共去過 15 個國家。這是累積值。

關鍵限制:不能跟確切的過去時間一起用。"I have visited Japan in 2019." 是錯的,因為 in 2019 是一個時間點,不是累積區間。

現在完成進行式:連續積分

$$S + \text{have/has} + \text{been} + V\text{-}ing + O$$

$$\int_{t_{\text{start}}}^{t_{\text{now}}} \text{activity}(t) \, dt$$

I have been studying for three hours.

不是在某個時間點做了「學習」,而是從三小時前到現在持續不斷地學習。對比一下就清楚了:

  • "I have read the book"($\sum$,結果導向)
  • "I have been reading the book"($\int$,過程導向)

被動語態:方程式反轉

$$\text{主動:} S + V + O$$ $$\text{被動:} O + \text{be} + V\text{-}pp + \text{by } S$$

$$f(x) = y \quad \Leftrightarrow \quad f^{-1}(y) = x$$

不是所有函數都可逆,同理:只有及物動詞(有受詞)才能變被動。"He sleeps." 不能變被動。

條件句:邏輯蘊含

第一條件句(真實): $$P \Rightarrow Q$$

If it rains, I will stay home.

第二條件句(假設現在): $$\neg P \Rightarrow Q_{\text{hypothetical}}$$

If I were rich, I would travel the world.

第三條件句(假設過去): $$\neg P_{\text{past}} \Rightarrow Q_{\text{past hypothetical}}$$

If I had studied harder, I would have passed the exam.

動詞的「時態後退」用來標記跟現實的距離。距離現在越遠,動詞就退得越遠。

條件 與現實距離 動詞變化
第一條件 近 現在式 + will
第二條件 中 過去式 + would
第三條件 遠 過去完成式 + would have

長句子是公式套公式

真正的句子常常是好幾層公式疊起來,像樹狀結構:

The students who have been studying for the exam will have finished by tomorrow.

拆開來看,它其實是兩個子句疊在一起:

  • 主幹(未來完成式):$S + \text{will have} + V\text{-}pp$
  • 修飾主詞的關係子句(現在完成進行式):$\text{who} + \text{have been} + V\text{-}ing$

合在一起:

$$[\underbrace{S_{\text{rel}}}_{\text{who have been studying...}}] + \underbrace{\text{will have}}_{\text{future perfect}} + \underbrace{V\text{-}pp}_{\text{finished}} + \underbrace{\text{by tomorrow}}_{\text{時間界}}$$

用樹狀畫出來:

                    S = The students
                          |
                +---------+---------+
                |                   |
        [who have been         will have finished
         studying for           by tomorrow
         the exam]
                |
          關係子句(修飾 S)

學會這樣拆,看到長句就不會慌。先找主幹(誰做了什麼),再看修飾語(誰的、用什麼、什麼時候),一層一層往下拆,最後再合回去念一遍。

時態一覽:3 × 4 矩陣

把時態排成一張「時間 × 體(aspect)」的表:

簡單(Simple) 進行(Continuous) 完成(Perfect) 完成進行(Perfect Continuous)
過去 $V\text{-}ed$
I ate.
was/were + $V\text{-}ing$
I was eating.
had + $V\text{-}pp$
I had eaten.
had been + $V\text{-}ing$
I had been eating.
現在 $V(s/es)$
I eat.
am/is/are + $V\text{-}ing$
I am eating.
have/has + $V\text{-}pp$
I have eaten.
have/has been + $V\text{-}ing$
I have been eating.
未來 will + $V$
I will eat.
will be + $V\text{-}ing$
I will be eating.
will have + $V\text{-}pp$
I will have eaten.
will have been + $V\text{-}ing$
I will have been eating.

三個觀察:

  • 橫的是時間,縱的是體的「深度」。左邊是表層(單點動作),越往右越深(累積、持續)。
  • 常被說成 16 格,其實核心組合是 $3 \times 4 = 12$ 種。被動、情態那幾格另外算。
  • 你不需要背 12 種。你只需要知道每個軸怎麼走:時間往過去退($\text{shift}_{\text{past}}$),體往完成加($\text{have} + V\text{-}pp$),體往進行加($\text{be} + V\text{-}ing$)。三個軸自由組合。

有人看到符號就頭暈

不是每個人對公式都有好感。假設有個三十多歲、做會計的學習者,第一次看到 $V(t)$ 的寫法就說「看到符號頭就暈」。聊下去才發現,他高中數學被當過,從此對任何「看起來像數學」的東西都過敏。英文文法本來跟數學無關,套上公式符號反而觸發了抗拒。

這是很真實的學習心理:曾經在某個領域受挫,那個領域的「外觀」就會自動讓你警覺。符號、公式、$f(x)$,對某些人是啟發,對另一些人是壓力。

遇到這種情況,我的做法是讓公式變得「不像公式」:

  1. 用白話寫註解。$V(t)$ 旁邊寫「動詞帶時間參數」,不要只放符號。
  2. 把符號換成中文位置。$S$ 就是「主詞那個空位」,$V$ 就是「動詞那個空位」。
  3. 先用填空題過渡。「我 ______(吃)蘋果。」寫對了,再改成公式。
  4. 接受跳過。看完這篇記住 SVO 就夠了,條件句的符號可以略過,重點是邏輯,不是符號本身。

公式只是工具。工具不對就換一個,能幫你記住的才是好工具。

程式語言早就這樣做了

我在 Amazon 做資料科學的時候,每天都在寫正則表達式(regex)。regex 的本質,就是用符號表達「模式」:

^\d{3}-\d{4}$    // 匹配 123-4567 這種電話號碼

這跟英文文法的公式是同一件事。\d 是「任意數字」這個抽象,量詞 {3} 是「出現三次」這個約束。整條 regex 就是一條公式,描述「什麼樣的字串算合法」。

再廣一點看:

  • 邏輯學的 $\forall x \, P(x)$ 跟英文的 "All $x$ are $P$" 是同一件事。
  • SQL 的 SELECT ... FROM ... WHERE ... 跟英文的 SVO 結構幾乎一一對應。
  • 程式語言的 if ... then ... else 就是英文的第一/第二條件句。

語言學家其實早就知道這件事。喬姆斯基(Noam Chomsky)在 1950 年代就主張「語言是有限規則生成無限句子」,這跟數學的「有限公理生成無限定理」是同一個想法。只是大多數英文課本不從這個角度切入,所以學生看不到那條線。

寫過程式的人,文法公式會特別自然。沒寫過也沒關係,邏輯是通用的,符號只是載體。

練習:中文到公式,再回英文

第一部分:把句子變成公式,再從公式套出新的句子。

  1. "She has read three books this month." → 公式:$S + \text{has} + V\text{-}pp + O$(現在完成式) → 套換:$S$ = He, $V$ = written, $O$ = two emails → "He has written two emails this month."

  2. "If I had known, I would have called you." → 公式:$\neg P_{\text{past}} \Rightarrow Q_{\text{past}}$(第三條件句) → 套換:$P$ = she had arrived earlier, $Q$ = she would have caught the train → "If she had arrived earlier, she would have caught the train."

  3. "They are playing soccer now." → 公式:$S + \text{are} + V\text{-}ing + O$(現在進行式) → 套換:$S$ = The children, $V$ = eating, $O$ = lunch → "The children are eating lunch now."

  4. "You should study harder." → 公式:$S + \text{modal} + V_{\text{原形}}$(情態) → 套換:$S$ = We, modal = must, $V$ = leave → "We must leave."

  5. "The cake was eaten by Tom." → 公式:$O + \text{was} + V\text{-}pp + \text{by } S$(被動) → 套換:$S$ = Maria, $V$ = painted, $O$ = the wall → "The wall was painted by Maria."

第二部分:中文先寫公式,再翻英文。

  1. 中文:「她昨天已經完成作業了。」 → 公式提示:$S + V\text{-}ed + O$(過去簡單式,已經=強調完成) → 英文:She finished her homework yesterday.

  2. 中文:「我們正在等公車。」 → 公式提示:$S + \text{are} + V\text{-}ing + O$ → 英文:We are waiting for the bus.

  3. 中文:「如果你早點出門,就不會遲到了。」 → 公式提示:$\neg P_{\text{past}} \Rightarrow Q_{\text{past}}$(第三條件句) → 英文:If you had left earlier, you would not have been late.

  4. 中文:「這個蛋糕是我媽媽烤的。」 → 公式提示:$O + \text{be} + V\text{-}pp + \text{by } S$(被動) → 英文:This cake was baked by my mother.

  5. 中文:「他應該已經到了吧。」 → 公式提示:$\text{modal} + \text{have} + V\text{-}pp$(對過去的推測) → 英文:He should have arrived already.

對答案的時候注意第 3 題和第 5 題。兩題表面都是「過去的假設」,公式卻不同:第 3 題是條件句(兩個子句),第 5 題是情態推測(單句內部)。混用的話意思會跑掉。


挑你最近寫錯的一句英文,只做兩件事:先寫出它應該套哪一條公式(例如 $S + \text{has} + V\text{-}pp + O$),再把公式裡的主詞、動詞、受詞換成新的字,造出兩個新句子。

三句以內就好。做完之後你大概會發現,你記住的不是那一個句子,而是那條規則的形狀。

如果卡住的是「這句到底屬於哪條公式」,把句子貼給我,我們一起拆。

威威
威威 Willy
德國數學碩士、前 Amazon 資料科學家。數學是邏輯的語言,英文是世界的窗口。
← 回部落格