跳轉到

第1章 迭代基礎#

章前言#

迭代(iteration)是計算的心跳。把同一組步驟重複執行、每次以上一次的結果作為新的起點,這個看似簡單的動作,正是從求平方根、解線性方程組,到訓練神經網路、渲染曼德博集合等一切計算的共同骨架。可以說:凡是能被電腦解決的問題,幾乎都能被表述為某種迭代過程。

本章是全書的地基。我們先釐清「迭代」與「迴圈」的關係:迭代是數學概念,迴圈是程式載體。接著介紹證明迭代程式正確性的核心工具——迭代不變式(loop invariant),學會它,你就能像數學家一樣嚴格地論證「我的迴圈寫對了」,而不只是「測試通過了」。最後,我們討論遞迴與迭代的互換:兩者表達能力等價,但在堆疊深度、效能與可讀性上各有取捨,實務工程師必須能自由地在兩者之間轉換。

讀完本章,你將具備閱讀全書所需的三件工具:會寫迭代、會證迭代、會轉換迭代。