114 年 國立成功大學工程科學系碩士班乙組《計算機數學》
第 1 題15 分
Approximate the root of using Newton's method. Start with and perform two iterations.
登入後即可作答並保存紀錄。
本題考查牛頓法求函數根的概念與計算。牛頓法是一種迭代方法,用於尋找函數 的根。其迭代公式為:
首先,我們需要計算函數 的導數 。
給定 ,
則 。
初始值為 。
第一次迭代 (n=0):
計算 。
計算 。
計算 。
第二次迭代 (n=1):
計算 。
計算 。
計算 。
第 2 題10 分
Assume the passwords are selected from four-character combinations of 26 alphabetic characters. Assume that an adversary (i.e., a bad guy) can attempt passwords at a rate of one per second.
(A) Assuming no feedback to the adversary until each attempt (of four characters) has been completed, what is the expected time to discover the correct password? (5%)
(B) Assuming feedback to the adversary flagging an error as each incorrect character is entered, what is the expected time to discover the correct password? (5%)
登入後即可作答並保存紀錄。
核心觀念
共有 個英文字母,密碼長度為 ,因此密碼總數為
本題比較兩種回饋機制:
- 沒有即時回饋:每次必須輸入完整四字元密碼,才能知道是否正確。
- 逐字元回饋:輸入某字元錯誤時立即被告知,因此不必繼續嘗試後面的字元。
假設攻擊者不重複嘗試,且正確密碼在所有可能密碼中等機率出現。
(A) 沒有回饋,完成整組密碼後才知道結果
解題方法
所有 組密碼皆可能是正確答案。攻擊者依序嘗試時,正確密碼可能在第 組、第 組,直到第 組被猜中。
因此嘗試次數 均勻分布於
均勻分布的期望值為
每秒嘗試一組完整密碼,所以期望時間為
換算為小時:
換算為天:
(B) 每輸入一個錯誤字元便立即得到回饋
解題方法
逐一分析四個位置。
對任一位置而言,正確字元等可能是 個字母中的任一個。攻擊者依序嘗試且不重複猜測時,正確字元出現的位置可能是
第 3 題20 分
Consider RSA with p = 3 and q = 11. Also, we have the following rules:
(1) Compute n = pq, z = (p-1)(q - 1),
(2) Choose e (with e < n) such that e and z are coprime,
(3) Choose d such that (ed mod z = 1).
(A) What are n and z? (6%)
(B) Is e = 5 or e = 7 a better choice? Why? (3%)
(C) Find d so its value is as small as possible. (3%)
(D) Show the public and private keys. Given the message m=2, what is the corresponding ciphertext c? Show all work of encryption and decryption. (8%)
登入後即可作答並保存紀錄。
本題考查 RSA 非對稱加密演算法的原理、金鑰生成與加密解密過程。
核心觀念:
RSA 演算法基於數論中的大數分解難題。其安全性依賴於將兩個大質數相乘得到一個合數很容易,但將這個合數分解回兩個質數非常困難。
- 金鑰生成:
- 選擇兩個大質數 和 。
- 計算模數 。
- 計算歐拉函數 ,通常用 表示。
- 選擇公鑰指數 ,要求 且 (即 與 互質)。
- 計算私鑰指數 ,要求 。這表示 是 在模 下的乘法逆元。
- 公鑰為 ,私鑰為 。
- 加密:
- 密文 由明文 計算得出:。
- 解密:
- 明文 由密文 計算得出:。
題目設定:
質數 , 。
(A) 計算 n 和 z
解題步驟:
- 計算 。
- 計算 。
計算:
- 。
- 。
【答案】
, 。
(B) 比較 e = 5 或 e = 7 的優劣
核心觀念:
選擇公鑰指數 時,通常希望 盡可能小,以提高加密速度。然而, 必須與 互質。同時, 的選擇也會影響私鑰 的大小。在某些情況下,如果 太小,可能會存在一些安全漏洞(例如,若 ,則 會直接暴露明文)。但在此題中,我們主要考慮互質條件和計算的簡便性。
解題步驟:
- 檢查 是否與 互質。
- 檢查 是否與 互質。
- 比較兩者的優劣。
計算:
-
對於 :
。
因為 ,所以 不能選擇,因為它與 不互質。 -
對於 :
。20 的質因數是 2 和 5。7 不是 2 或 5 的倍數,所以 。
與 互質,因此 可以選擇。
結論:
只有 是合法的選擇。因此,它自然是「更好」的選擇,因為 是無效的。
如果題目假設 必須互質,那麼 就不是一個可行的選項。
如果允許我們從 中選擇一個,並且 確實與 互質,那麼通常會選擇較小的 以加快加密。但在此情況下, 不互質。
【答案】
是唯一合法的選擇,因為 ,而 。
第 4 題10 分
Given the dataset:
Use the normal equation to compute the linear regression coefficients.
登入後即可作答並保存紀錄。
本題考查線性迴歸中的最小平方估計,使用正規方程(Normal Equation)來求解迴歸係數。
核心觀念:
在線性迴歸模型 中,我們希望找到係數向量 ,使得預測值 與實際值 之間的誤差平方和最小。正規方程提供了一種直接求解最佳 的方法,其公式為:
其中:
- 是特徵矩陣 (包含截距項 1)。
- 是目標向量。
- 是係數向量。
- 是 的轉置。
- 是 的逆矩陣。
題目設定:
特徵矩陣 。
目標向量 。
解題步驟:
- 計算 (X 的轉置)。
- 計算 。
- 計算 (矩陣的逆)。
- 計算 。
- 將步驟 3 和 4 的結果代入正規方程 計算 。
計算:
1. 計算 :
2. 計算 :
3. 計算 :
對於一個 2x2 矩陣 ,其逆矩陣為 。
在這裡,。
第 5 題10 分
Write an algorithm to determine if a point P(x, y) lies inside a triangle with vertices A(0, 0), B(4, 0), and C(0, 3). Test your algorithm with P(1, 1) and P(5, 5).
登入後即可作答並保存紀錄。
本題考查幾何演算法設計,判斷一個點是否在給定三角形內部。
核心觀念:
判斷一個點是否在三角形內部有幾種常見方法:
- 面積法 (Barycentric Coordinates): 如果點 P 在三角形 ABC 內部,則以 P 為頂點的三个小三角形 PAB, PBC, PCA 的面積之和等於三角形 ABC 的面積。
- 向量叉乘法 (Cross Product): 如果點 P 在三角形 ABC 的內部,則 P 在邊 AB 的左側,在邊 BC 的左側,以及在邊 CA 的左側(或全部在右側,取決於頂點順序)。我們需要確保頂點的順序是順時針或逆時針。
- 半平面法 (Half-Plane Test): 每個三角形的邊都定義了一條直線,該直線將平面分成兩個半平面。點 P 在三角形內部,當且僅當它位於所有三條邊定義的「內部」半平面。
這裡我們採用向量叉乘法,因為它在計算上相對直接且效率高。
演算法設計 (向量叉乘法):
步驟:
-
計算三角形 ABC 的頂點順序: 確定頂點 A, B, C 的順序是順時針還是逆時針。這可以通過計算向量 AB 和 AC 的叉乘來判斷。
- 向量 。
- 向量 。
- 2D 叉乘 (或說 z 分量) 。
- 由於叉乘結果為正 (12 > 0),頂點 A, B, C 是逆時針順序。這意味著,如果點 P 在三角形內部,它應該位於邊 AB 的左側,邊 BC 的左側,以及邊 CA 的左側。
-
定義一個輔助函數
isLeft(P1, P2, P3): 這個函數判斷點 P3 相對於有向線段 P1P2 的位置。- 它計算向量 和向量 的 2D 叉乘。
- 設 , , 。
- 叉乘值 。
- 如果 ,則 P3 在 P1P2 的左側。
- 如果 ,則 P3 在 P1P2 的右側。
- 如果 ,則 P3 在直線 P1P2 上。
-
應用
isLeft函數:
為了判斷點 P(x, y) 是否在三角形 ABC (A(0,0), B(4,0), C(0,3)) 內部,我們需要檢查 P 相對於有向邊 AB, BC, CA 的位置。由於 A, B, C 是逆時針順序,P 必須在所有這三條邊的左側(或在邊上)。- 檢查 P 相對於 AB 的位置:
isLeft(A, B, P)。 - 檢查 P 相對於 BC 的位置:
isLeft(B, C, P)。 - 檢查 P 相對於 CA 的位置:
isLeft(C, A, P)。
如果這三個條件都成立(叉乘值 >= 0),則點 P 在三角形內部或邊界上。如果需要嚴格內部,則需要叉乘值 > 0。題目通常指包含邊界。
- 檢查 P 相對於 AB 的位置:
具體演算法 Pseudocode:
第 6 題5 分
A box contains 3 red, 4 blue, and 5 green balls. One ball is drawn at random. If it is known that the ball is not red, what is the probability that it is blue?
登入後即可作答並保存紀錄。
本題考查條件機率的計算。
核心觀念:
條件機率 表示在事件 B 已經發生的條件下,事件 A 發生的機率。其公式為:
其中 是事件 A 和事件 B 同時發生的機率,而 是事件 B 發生的機率。
題目設定:
- 紅色球 (R):3 個
- 藍色球 (B):4 個
- 綠色球 (G):5 個
- 總球數: 個。
- 隨機抽取一個球。
事件定義:
- 事件 A:抽到的球是藍色 (Blue)。
- 事件 B:抽到的球不是紅色 (Not Red)。
解題步驟:
- 計算總球數。
- 計算事件 B (抽到的球不是紅色) 的機率 。
- 計算事件 A 和事件 B 同時發生的機率 。
- 使用條件機率公式計算 。
計算:
-
總球數: 12 個。
-
計算 (抽到的球不是紅色):
如果球不是紅色,則它必定是藍色或綠色。
不是紅色的球的數量 = 藍色球數量 + 綠色球數量 = 個。
所以,抽到不是紅色的球的機率是:
第 7 題10 分
A medical test for a disease gives a positive result 95% of the time if the person has the disease, and 10% of the time if the person does not. If 1% of the population has the disease, what is the probability that a person actually has the disease given that they tested positive?
登入後即可作答並保存紀錄。
本題考查貝氏定理 (Bayes' Theorem) 的應用,用於計算在觀測到某個事件 (測試結果為陽性) 後,某個假設 (患有疾病) 為真的機率。
核心觀念:
貝氏定理用於更新在獲得新證據後,某個假設的機率。
其中:
- :在事件 B 發生的條件下,事件 A 發生的後驗機率 (Posterior Probability)。
- :在事件 A 發生的條件下,事件 B 發生的機率 (Likelihood)。
- :事件 A 的先驗機率 (Prior Probability)。
- :事件 B 的總機率 (Marginal Probability)。
題目設定:
- 事件 D:一個人患有該疾病。
- 事件 D':一個人沒有患有該疾病 ( 是 的補集)。
- 事件 Pos:醫療測試結果為陽性。
- 事件 Neg:醫療測試結果為陰性。
已知資訊:
- 測試準確性 (Sensitivity): 如果一個人有疾病,測試結果為陽性的機率是 95%。
。 - 誤報率 (False Positive Rate): 如果一個人沒有疾病,測試結果為陽性的機率是 10%。
。 - 疾病患病率 (Prevalence): 1% 的人口患有該疾病。
。
要求:
計算一個人實際患有疾病的機率,已知他的測試結果為陽性。即,計算 。
解題步驟:
- 根據 ,計算 。
- 計算測試結果為陽性的總機率 。這可以通過全機率公式 (Law of Total Probability) 計算:
。 - 將已知資訊和計算出的 代入貝氏定理公式,計算 。
計算:
第 8 題10 分
A discrete random variable X has the following probability distribution:
Find E(X) and Var(X).
登入後即可作答並保存紀錄。
本題考查離散隨機變數的期望值 (Expected Value) 和變異數 (Variance) 的計算。
核心觀念:
對於一個離散隨機變數 ,其機率質量函數 (Probability Mass Function, PMF) 為 。
- 期望值 E(X): 是隨機變數取值的加權平均,權重是對應的機率。
- 變異數 Var(X): 度量隨機變數取值的分散程度,定義為隨機變數與其期望值之差的平方的期望值。
另一個常用的計算公式是:
其中 。
題目設定:
隨機變數 的機率分佈如下:
解題步驟:
- 計算期望值 。
- 計算 。
- 使用公式 計算變異數 。
計算:
第 9 題10 分
Determine if the following graph has an Eulerian path or an Eulerian circuit:
Vertices: V = {A, B, C, D}
Edges: E = {AB, BC, CD, DA, AC}.
登入後即可作答並保存紀錄。
核心觀念
本題考查 Eulerian path 與 Eulerian circuit 的判定。
- Eulerian path(歐拉路徑):恰好經過圖中每一條邊一次的路徑,起點與終點可以不同。
- Eulerian circuit(歐拉迴路):恰好經過圖中每一條邊一次,且起點與終點相同的迴路。
對於具有連通性的無向圖:
- 所有頂點的度數皆為偶數 存在 Eulerian circuit。
- 恰有兩個頂點的度數為奇數 存在 Eulerian path,但不存在 Eulerian circuit。
- 奇數度頂點超過兩個,或圖不連通 不存在 Eulerian path。
其中,頂點的度數是與該頂點相連的邊數。
解題方法
題目給定:
逐一計算各頂點的度數:
- 連接 ,因此 。
- 連接 ,因此 。
- 連接 ,因此 。
- 連接 ,因此 。
整理如下: