1(A)三筆記錄雜湊到 11 個 bucket 的碰撞機率
考點:Hash Function 與雜湊表(Hash Table)基本概念
考點:Hash Function 與雜湊表(Hash Table)基本概念
考點:Hash Function 與雜湊表(Hash Table)基本概念
5 筆。4 筆時碰撞機率約 0.459,5 筆時約 0.656,首次超過一半。
考點:電腦圖學基礎:3D 繪圖流程(Modeling/Rendering/Displaying)、光線反射類型與平面法向量
平面 ; 對平面的鏡射點為 ;光源 與 的連線交平面於 。
考點:產生式系統(Production System)與狀態圖:狀態、規則與控制系統
考點:產生式系統(Production System)與狀態圖:狀態、規則與控制系統
(如手寫圖)
狀態以 (農夫, 狐狸, 鵝, 豆子) 表示,L 為原岸、R 為對岸:
| 狀態 | 規則 | 下一狀態 |
|---|---|---|
| (L, L, L, L) | 帶鵝過河 | (R, L, R, L) |
| (R, L, R, L) | 獨自返回 | (L, L, R, L) |
| (L, L, R, L) | 帶狐狸過河 | (R, R, R, L) |
| (L, L, R, L) | 帶豆子過河 | (R, L, R, R) |
| (R, R, R, L) | 帶鵝返回 | (L, R, L, L) |
| (R, L, R, R) | 帶鵝返回 | (L, L, L, R) |
| (L, R, L, L) | 帶豆子過河 | (R, R, L, R) |
| (L, L, L, R) | 帶狐狸過河 | (R, R, L, R) |
| (R, R, L, R) | 獨自返回 | (L, R, L, R) |
| (L, R, L, R) | 帶鵝過河 | (R, R, R, R) |

考點:雞蛋掉落問題(Egg Drop Problem):有限樣品下的最少測試次數
最差情況最少 9 次。剩 次、 艘船可分辨 個值,。
考點:Master Theorem 三種基本情形(Case 1/2/3)與 Strassen's 矩陣乘法範例
展開得 ,(同時為 )。
考點:Master Theorem 三種基本情形(Case 1/2/3)與 Strassen's 矩陣乘法範例
Master Theorem Case 2:,,(同時為 )。
考點:Tree 的 Minimum Vertex Cover:後序走訪 Greedy 與 DP 的 O(n) 解法
演算法(任選一點為根,以後序走訪由葉往根處理):
TreeVertexCover(T, r)
for each vertex v in postorder of T rooted at r
inX[v] = false
for each child c of v
if inX[c] == false
inX[v] = true
return { v | inX[v] == true }
正確性:
時間:後序走訪每個節點一次、每條邊檢查一次,樹有 條邊,總時間 。
考點:握手定理與 Euler Path/Euler Circuit 的存在條件
錯誤。分支度總和 為偶數,奇數分支度頂點的個數必為偶數。
考點:Merge Sort 與 Heap Sort 演算法邏輯、Quick Sort:DS版/Algo版 Partition 邏輯與 Worst-case 成因(Partition Three/Three-way Partition)
錯誤。比較式排序最差下界為 ;Merge Sort 最差 為最佳,Quick Sort 最差 不是。
考點:Minimum Spanning Tree(MST)與求解演算法(Kruskal's、Prim's)
錯誤。稠密圖 ,Kruskal 為 ,以陣列實作的 Prim 為 ,Prim 較快。
考點:NP-Hard 與 NPC
錯誤。SAT 是 NP-complete,但 P 是否等於 NP 尚未解決,「沒有多項式時間演算法」並未被證明;若 P = NP 則存在。
考點:握手定理與 Euler Path/Euler Circuit 的存在條件
錯誤。上中、左中、右中、下中的分支度皆為 5,奇數分支度頂點有 4 個,超過 2 個,不存在 Euler Path。
考點:開源授權條款比較:GPL、MIT、Apache License
(一)開源軟體:原始碼公開,授權允許使用、修改與再散布。例:Linux 核心、Mozilla Firefox。
(二)閉源軟體:原始碼不公開,只能依授權合約使用。例:Microsoft Windows、Adobe Photoshop。
(三)差異:原始碼是否公開、使用者能否修改與再散布、營利方式(開源多靠支援服務,閉源多賣授權或訂閱)。
考點:軟體測試:黑箱測試、白箱測試與邊界值分析
(一)邊界值分析(Boundary Value Analysis, BVA)是黑箱測試技術:錯誤多發生在輸入範圍的邊界(如 < 誤寫成 <=),所以在每個有效範圍的邊界上、邊界內側與邊界外側取值設計測試案例。
(二)有效範圍為 18~65:
| 測試值 | 位置 | 預期結果 |
|---|---|---|
| 17 | 下界外側 | 拒絕(無效) |
| 18 | 下界 | 接受 |
| 19 | 下界內側 | 接受 |
| 64 | 上界內側 | 接受 |
| 65 | 上界 | 接受 |
| 66 | 上界外側 | 拒絕(無效) |
17 與 66 檢查系統是否正確拒絕範圍外的年齡,18 與 65 檢查邊界本身是否被接受,19 與 64 確認邊界附近的有效值也正常。
考點:Stack 與 Queue 定義與應用場景
三個堆疊為 A、B、C,要交換 A 中相鄰的兩筆資料 (較上)與 (緊接在 下方),假設 A 中的資料值互不相同:
SwapAdjacent(A, B, C, x)
count = 0
while top(A) != x // 把 x 上方的資料暫存到 B
move top(A) to B
count = count + 1
move top(A) to C // x 移到 C
move top(A) to B // y 移到 B
move top(C) to A // x 回到 A,位於原本 y 的位置
move top(B) to A // y 放回 A,位於 x 之上
repeat count times // 把暫存的資料依原順序放回 A
move top(B) to A
範例:A 由底到頂為 1, 2, 3, 4, 5,交換 2 與 3(、)。
| 步驟 | A(底→頂) | B(底→頂) | C |
|---|---|---|---|
| 初始 | 1, 2, 3, 4, 5 | ||
| 5、4 移到 B | 1, 2, 3 | 5, 4 | |
| 3 移到 C | 1, 2 | 5, 4 | 3 |
| 2 移到 B | 1 | 5, 4, 2 | 3 |
| 3 移回 A | 1, 3 | 5, 4, 2 | |
| 2 移回 A | 1, 3, 2 | 5, 4 | |
| 4、5 移回 A | 1, 3, 2, 4, 5 |