歡迎來到數字世界!
在本章中,我們將深入探討數論 (Number Theory),這被認為是數學中最「純粹」的部分。數論主要研究整數的性質。雖然起初看起來很抽象,但它卻是現代科技背後的秘密引擎,從網絡安全到信用卡加密,都離不開它的運作。
由於這是科技應用純數 (Further Pure with Technology) 的一部分,我們不僅會親手計算,還會思考如何運用編程 (programming) 和科技 (technology) 來探索當中的規律。別擔心如果你不是電腦專家——我們會一步一步為你拆解所有概念!
1. 基礎磚塊:質因數分解
在開始複雜的內容之前,讓我們看看數字世界的「原子」:質數 (Prime Numbers)。
算術基本定理 (Fundamental Theorem of Arithmetic)
這個名詞聽起來很深奧,但它的意思很簡單:每個大於 1 的整數,不是本身就是一個質數,就是可以被唯一地表示為一組質數的積。
例子:60 可以寫成 \( 2^2 \times 3 \times 5 \)。除了這個組合,沒有其他方法能只用質數來表示 60!
科技連結:質數測試
在考試中,你可能會看到一些設計用來檢測數字是否為質數的小程式。簡單程式的一個常見局限是速度。如果程式要檢查直到 \( n \) 的每一個數字來確認是否有因數,那麼當數字很大時,速度會非常慢。
小貼士:若要檢查 \( n \) 是否為質數,電腦只需要測試直到 \( \sqrt{n} \) 的因數即可。這樣效率高得多!
快速溫習:
• 質數:只有兩個因數(1 和本身)的數字。
• 唯一分解:每個整數都有一個獨一無二的「質數指紋」。
• 效率:測試因數時,只需檢查到 \( \sqrt{n} \)。
2. 同餘運算 (時鐘算術)
同餘運算 (Modular arithmetic) 通常被稱為「時鐘算術」。如果現在是 10:00,4 小時後在標準時鐘上不是 14:00,而是 2:00。這就是模 12 (Modulo 12) 的運作方式。
標記法
我們寫作:\( a \equiv b \pmod n \)。
這意味著 \( a \) 和 \( b \) 除以 \( n \) 時會留下相同的餘數。
例子:\( 17 \equiv 2 \pmod 5 \),因為 17 和 2 除以 5 後的餘數都是 2。
成功的法則
1. 化繁為簡:你總是可以將大數替換為其餘數,使計算更輕鬆。
2. 負餘數:有時候反向思考會更容易。在 \( \pmod{10} \) 中,\( 9 \) 等同於 \( -1 \)。這會讓像 \( 9^{50} \) 這樣的指數運算變得容易得多,因為 \( (-1)^{50} = 1 \)。
避免常見錯誤:
不要將 \( \equiv \) 符號完全等同於普通的等號來進行除法。除非你除以的數與模數是互質 (co-prime) 的(意即它們除了 1 之外沒有其他公因數),否則你不能隨意將兩邊「相除」。
重點總結:同餘運算專注於餘數,它將無限的數線變成了有限的循環!
3. 指數運算的捷徑:費馬與歐拉
當數字變得極大時,我們需要捷徑。這兩個定理是你解決高次方問題時的最佳夥伴。
費馬小定理 (Fermat’s Little Theorem)
若 \( p \) 是質數,且 \( a \) 是任何不被 \( p \) 整除的整數,則:
\( a^{p-1} \equiv 1 \pmod p \)
例子:\( 3^{10} \pmod{11} \) 是多少?因為 11 是質數,答案直接就是 1!
歐拉總計函數 (Euler’s Totient Function) \( \phi(n) \)
如果模數不是質數怎麼辦?我們使用歐拉總計函數。\( \phi(n) \) 是小於 \( n \) 且與 \( n \) 互質的數字個數。
• 如果 \( p \) 是質數,\( \phi(p) = p - 1 \)。
• 如果你有兩個質數的積 \( n = p \times q \),則 \( \phi(n) = (p-1)(q-1) \)。
歐拉定理:若 \( a \) 與 \( n \) 互質,則 \( a^{\phi(n)} \equiv 1 \pmod n \)。
威爾遜定理 (Wilson’s Theorem)
這是一個專門測試質數的方法:一個數字 \( p \) 是質數,若且唯若:
\( (p-1)! \equiv -1 \pmod p \)
比喻:這就像只有質數才知道的「秘密握手信號」。
快速溫習:
• 費馬:模數為質數時使用。
• 歐拉:用於複合數(非質數)時使用。
• 威爾遜:連結了階乘 (factorials) 與質數。
4. 丟番圖方程 (Diophantine Equations)
丟番圖方程是指我們只關心整數解的方程。在「科技」試卷中,你通常會使用編程循環來找出這些解。
畢氏三元數 (Pythagorean Triples)
這是指滿足 \( x^2 + y^2 = z^2 \) 的整數。最著名的是 \( (3, 4, 5) \)。你可能會被要求編寫程式,找出滿足特定條件(例如 \( x + y + z = 100 \))的三元數。
佩爾方程 (Pell’s Equation)
這是一種特別的方程,形式如下:
\( x^2 - ny^2 = 1 \)
其中 \( n \) 是非平方數的整數。這些方程總是有顯然解 \( (1, 0) \),但它們可能有無限多個更大的整數解。手工尋找這些解很困難,但電腦可以通過「暴力破解」來搜尋,即檢查不同的 \( y \) 值,看 \( 1 + ny^2 \) 是否為完全平方數。
別擔心,這看起來可能有點棘手!在考試中,你不必從零開始利用高深的理論來求解佩爾方程;你只需要理解找出這些解的程式邏輯即可。
5. 數論中的編程
由於這是一個「科技應用」單元,你需要明白如何編寫和閱讀簡單的演算法。
核心編程概念:
• For 循環:用於測試一定範圍內的數字(例如,檢查 1 到 1000 之間所有的 \( x \))。
• If 語句:用於檢查條件(例如,如果 \( x^2 - ny^2 == 1 \))。
\n• 模運算子 (%):在編程中,`x % n` 會給出 \( x \) 除以 \( n \) 的餘數。這對於質數測試和同餘運算至關重要。
科技的局限性
電腦雖然速度快,但也有其局限:
1. 溢位 (Overflow):如果數字變得太大(例如 \( 100! \)),電腦可能會耗盡記憶體或產生錯誤的「溢位」提示。
2. 時間複雜度 (Time Complexity):如果解非常巨大,「暴力搜尋」(檢查每一個數字)可能需要數年時間。我們需要「精簡化」(如 \( \sqrt{n} \) 技巧)來加速運算。
重點總結:科技是處理繁重計算的工具,但你需要數學理論來告訴電腦如何高效地計算。
最終總結
• 數論全是關於整數中的規律。
• 同餘運算讓我們利用餘數來簡化巨大的問題。
• 定理(費馬、歐拉、威爾遜)為處理冪次和質數提供了強大的捷徑。
• 丟番圖方程尋求整數解,通常會配合電腦循環來解決。
• 科技需要精明的演算法來避免錯誤並節省時間。
保持練習!數論就像一場拼圖遊戲——一旦你看見了當中的規律,一切都會豁然開朗。