107 地方特考四等 統計 資料處理概要 考古題詳解
第 一 題20 分
佇列(queue)和堆疊(stack)是二種常用的資料結構。請回答下列問題。
(一) 若要用深度優先的方式(depth-first search)走訪一樹狀結構(tree structure)的所有節點(node),請問佇列和堆疊何者較適合?並說明原因。(10 分)
(二) 若要用廣度優先的方式(breadth-first search)走訪一樹狀結構(tree structure)的所有節點(node),請問佇列和堆疊何者較適合?並說明原因。(10 分)
登入後即可作答並保存紀錄。
核心觀念
本題評量資料結構的兩大基本線性結構——堆疊(Stack)與佇列(Queue),及其在樹狀結構走訪(Tree Traversal)演算法中的對應與應用。
- 資料結構特性:
- 堆疊(Stack):遵循後進先出(LIFO, Last-In-First-Out)原則,資料的插入(Push)與刪除(Pop)皆發生在同一端(Top)。
- 佇列(Queue):遵循先進先出(FIFO, First-In-First-Out)原則,資料自後端(Rear)加入(Enqueue),由前端(Front)移出(Dequeue)。
- 走訪演算法特性:
- 深度優先走訪(Depth-First Search, DFS):從根節點出發,沿著分支不斷深入直到葉節點(Leaf),無法繼續前進時則進行回溯(Backtracking),轉向另一個分支繼續探尋。
- 廣度優先走訪(Breadth-First Search, BFS):又稱階層走訪(Level-Order Traversal),從根節點(第 層)開始,依序將第 層的所有節點走訪完畢後,才進入第 層繼續走訪。
解題方法
(一) 深度優先走訪(DFS)何者較適合與原因說明
- 適用結構:堆疊(Stack)較適合。
- 原因說明:
- 符合後進先出(LIFO)之探索順序: DFS 的核心策略是「優先探索最深層的節點」。當走訪至某一節點時,其產生的子節點(更深一層)必須優先於其兄弟節點(同層節點)被探訪。堆疊具備 LIFO 特性,最後被推入堆疊的子節點會最先被彈出(Pop)處理,恰好能實現「朝深處持續探索」的機制。
- 完美支援回溯(Backtracking)機制: 當某一分支探訪至底(葉節點)時,演算法必須回到最近一個還有未走訪分支的分歧點。在堆疊中,前一個分歧節點的未訪子節點剛好位於目前頂端之下,當底部節點處理完畢彈出後,頂端自然暴露出上一層的未處理節點,天然支援回溯操作。
- 程式實作對應: 若以「遞迴(Recursion)」實作 DFS,底層仰賴的是作業系統的呼叫堆疊(Call Stack);若改寫為非遞迴的迭代寫法,程式設計師則必須在程式碼中明確宣告並維護一個自訂的堆疊(Explicit Stack)。
(二) 廣度優先走訪(BFS)何者較適合與原因說明
- 適用結構:佇列(Queue)較適合。
- 原因說明:
- 符合先進先出(FIFO)之階層順序: BFS 的目標是實現逐層走訪(Level-Order)。所有在深度為 的節點,都必須先於深度為 的節點被處理。佇列的 FIFO 特性保證了「較早被發現的節點,必定較早被取出處理」。
- 保持子節點的處理時序:
第 二 題20 分
有一資料表如下,共有八筆資料,第一欄是鍵值(key value)的二進位表示法(Binary representation),第二欄是姓氏資料。今要用雜湊(hash)的方式來將資料分成若干籃子(bucket),請回答下列有關雜湊的問題。
| 鍵值(二進位表示法) | 姓 |
|---|---|
| Lee | |
| Chen | |
| Wang | |
| Hwang | |
| Lu | |
| Chao | |
| Liao | |
| Chang |
(一) 假設雜湊函數(hashing function)是 ,亦即將 key 的值除以 之餘數值,即為雜湊函數值。假設每個籃子的容量最多可存三筆資料,請以上表之資料為例,將鍵值之二進位值轉換為十進位值,並將這些資料按所給的雜湊函數,區分為應有的籃子,並以此例說明什麼是靜態雜湊(static hashing)。(10 分)
(二) 假設每個籃子的容量最多可存二筆資料,請以上表鍵值之二進位表示法為例,用動態雜湊(dynamic hashing)的方法,將這八筆資料做 hash。(10 分)
登入後即可作答並保存紀錄。
核心觀念
本題評量資料庫與資料結構中的雜湊技術(Hashing Techniques),核心概念包含:
- 靜態雜湊(Static Hashing):
- 雜湊函數 與籃子(Bucket)的總數量在系統初始化時即固定。
- 使用除法雜湊法(Division Method):,雜湊值介於 到 之間。
- 若特定籃子內置放的筆數超過其容量上限(Bucket Capacity),會引發碰撞(Collision)與溢位(Overflow),需透過鏈結法(Overflow Chaining)等方式處理。
- 動態雜湊(Dynamic Hashing,以可延伸雜湊 Extendible Hashing 為代表):
- 藉由目錄(Directory)與二進位鍵值的前綴位元(Prefix Bits),使籃子能隨資料量動態增加而進行分裂(Split),避免靜態雜湊產生長溢位鏈或全表重新雜湊(Rehashing)的缺點。
- 核心參數包含全域深度(Global Depth, )(目錄所使用的前綴位元數,目錄項目數為 )與各籃子的區域深度(Local Depth, )(該籃子辨識資料所依據的前綴位元數)。
- 當籃子滿載且有新資料欲放入時,若區域深度小於全域深度(),僅需將該籃子一分為二並增加區域深度;若 ,則目錄大小需倍增(全域深度 加 )。
解題方法
(一) 鍵值轉換、靜態分配與靜態雜湊特性
步驟 1:二進位轉換為十進位並計算雜湊函數值 雜湊函數為 :
| 鍵值(二進位) | 鍵值(十進位) | 計算式() | 雜湊值(籃子編號) | 姓氏 |
|---|---|---|---|---|
| Lee | ||||
| Chen | ||||
| Wang | ||||
| Hwang | ||||
| Lu | ||||
| Chao | ||||
| Liao | ||||
| Chang |
步驟 2:區分為應有的籃子(容量上限為 3 筆)
- Bucket 0:Lee (), Chen (), Chao (),共 3 筆(達上限,未溢位)
- Bucket 1:Hwang (),共 1 筆
- Bucket 2:Wang (), Liao (),共 2 筆
- Bucket 3:Lu (), Chang (),共 2 筆
步驟 3:說明什麼是靜態雜湊(Static Hashing) 以上述分配為例,靜態雜湊的特徵與運作如下:
- 固定的配置結構:雜湊函數()與實體籃子總數(固定為 4 個)在事前即確定,無論資料總量如何增減,位址空間始終維持 4 個主籃子。
- 溢位(Overflow)困境:以本例而言,Bucket 0 目前已存放 3 筆資料(達容量上限)。若後續再插入一筆餘數為 的新資料(如 ),Bucket 0 就會發生溢位(Overflow),必須配置額外的溢位桶(Overflow Bucket)並以指標串接;若資料量劇增,溢位串列過長會使查詢時間從 退化為線性搜尋。
- 儲存效率不均:若預先分配過多籃子會造成記憶體浪費;若分配過少則極易造成嚴重碰撞與溢位。
(二) 動態雜湊(以可延伸雜湊 Extendible Hashing 實作)
每個籃子容量上限為 2 筆資料。採用二進位前綴(Prefix Bits)由高位至低位(由左至右)進行可延伸雜湊:
步驟 1:分析 8 筆資料的前綴分佈
- 前綴為
0的鍵值有 4 筆:(超過單一籃子容量 2) - 前綴為
1的鍵值有 4 筆:(超過單一籃子容量 2) - 擴展至前 2 位元前綴:
00: (Chen), (Wang) 共 2 筆(可收容在容量為 2 的籃子中)01: (Chao), (Chang) 共 2 筆(可收容在容量為 2 的籃子中)
第 三 題10 分
請說明物聯網(Internet of Things)、網際網路(Internet)、全球資訊網(World Wide Web)這三者不同之處。(10 分)
登入後即可作答並保存紀錄。
核心觀念
本題評量考生對現代資訊通訊技術中「網路架構階層」、「應用服務」及「智慧感測互連」三大概念的層次區隔與範疇界定:
- 網際網路(Internet):屬於網路基礎設施(Infrastructure)。指利用 TCP/IP 協定家族,將全球各地不同架構、不同技術的區域網路(LAN)與廣域網路(WAN)相互串聯所形成的「網路之網路」(Network of Networks)。
- 全球資訊網(World Wide Web, WWW / Web):屬於建立在 Internet 之上的應用層服務(Application Service)。由 Tim Berners-Lee 提出,以超文件傳輸協定(HTTP/HTTPS)、超文件標示語言(HTML)及統一資源定位符(URL)為技術基石,透過超連結(Hyperlink)提供分散式的圖文多媒體資訊存取與瀏覽。
- 物聯網(Internet of Things, IoT):屬於 Internet 的延伸應用與實體感知整合(Extended Ecosystem)。將傳統僅連接電腦、伺服器或智慧手機的網際網路,延伸至具備感測、辨識、運算與通訊能力的各式實體物件(如感測器、RFID、家電、車載裝置),透過機器對機器(M2M)通訊實現環境感知、資料彙整與智慧化控制。
解題方法
針對本題 10 分的申論/簡答配分,應採取「定義說明 多維度比較表格 階層涵蓋關係圖解」之三段式架構:
- 先破題定義:各用 1 至 2 句話精準指出三者的技術本質(基礎建設 vs. 資訊應用服務 vs. 感知擴展架構)。
- 結構化對比(表格化):從「架構層級」、「核心協定與技術」、「連接對象」、「傳輸內容」四大構面進行水平對照,條理分明便於閱卷委員給分。
- 釐清從屬與包容性:點出「WWW 是 Internet 上的眾多服務之一」與「IoT 是以 Internet(及其他無線通訊)為骨幹傳輸神經的實體延伸」。
選項分析
本題為非選擇題(申論/簡答題),無選擇題選項。以下就閱卷評分之核心概念重點進行辨析:
- 網際網路(Internet)之正確認知:答題時不可將其窄化為「網頁」,其涵蓋網路層、傳輸層至應用層底層通訊架構,是所有網路應用(包括 Email、FTP、DNS、VoIP、Web 等)的骨幹平台。
- 全球資訊網(WWW)之正確認知:僅為 Internet 眾多應用服務之一。將「上網(Access Internet)」等同於「瀏覽網頁(Surf the Web)」是典型觀念混淆,作答時必須明確指出兩者的「底層架構與上層服務」從屬關係。
- 物聯網(IoT)之正確認知:並非獨立於現有網路之外的全新實體網路,其網路層核心依然依賴 Internet(包含 IPv6 等技術)及各類短距離通訊(ZigBee、Bluetooth、Wi-Fi、LoRa),其突破點在於「終端節點由人所操作的終端,擴展至具備感知能力的客觀萬物」。
解題技巧
- 形象化比喻記憶法(精準破題):
- Internet 猶如「公路系統」:包含柏油路面、高架橋、交通號誌等底層基礎建設。
- WWW 猶如跑在公路上的「客運巴士」:運送的是特定的乘客與圖文貨物(超文件資訊),是公路上的眾多車輛之一(其他還有郵務車 Email、貨車 FTP)。
第 四 題20 分
有一資料庫其中一個關連(relation)裡有 、、、、 這些欄位(attribute),且他們之間存在一些功能相依(functional dependency)的關係:。此關連已滿足第一正規化。
(一) 請將此關連作第二正規化處理,說明理由,並指出何者為關鍵欄位(key attribute)。(10 分)
(二) 請將此關連作第三正規化處理,說明理由,並指出何者為關鍵欄位。(10 分)
登入後即可作答並保存紀錄。
核心觀念
- 候選鍵(Candidate Key)與屬性分類:
- 主屬性(Prime Attribute / 關鍵欄位):包含於任一候選鍵中的欄位。
- 非主屬性(Non-prime Attribute / 非關鍵欄位):不屬於任何候選鍵的欄位。
- 第二正規化(2NF):
- 關連已符合第一正規化(1NF)。
- 消除部分功能相依(Partial Functional Dependency):每個「非主屬性」都必須完全功能相依於候選鍵,不可僅相依於候選鍵的真子集。
- 第三正規化(3NF):
- 關連已符合第二正規化(2NF)。
- 消除遞移功能相依(Transitive Functional Dependency):不可存在非主屬性藉由另一個非主屬性間接相依於候選鍵(即若 為非 trivial FD,則 必須為超鍵(Superkey),或 必須為主要屬性)。
解題方法
步驟一:求原始關連的候選鍵與屬性分類
給定關連 ,功能相依集合 。
- 尋找候選鍵:
- 檢視 中所有相依關係的右側(決定值): 皆曾出現在右側,而 與 從未出現在任何相依關係的右側。
- 依據功能相依性質,從未出現在右側的欄位必為候選鍵的必要組成,故候選鍵必包含 。
- 計算閉包 : 由 可擴展得:
- 由於 之閉包已涵蓋關連的所有欄位,且其真子集閉包:
- (由 得) 均無法決定所有欄位,因此 具有最小性,為此關連唯一的候選鍵(Candidate Key)。
- 欄位分類:
- 關鍵欄位(主屬性):
- 非關鍵欄位(非主屬性):
(一) 第二正規化(2NF)處理
- 理由分析:
- 候選鍵為組合鍵 。
- 檢視功能相依 :決定者 為候選鍵 的真子集,而被決定者 為非關鍵欄位。這表示非關鍵欄位 僅相依於部分候選鍵,構成了部分功能相依(Partial Functional Dependency),違反 2NF。
- 另一相依 之決定者 不是候選鍵的真子集,不構成部分相依。
- 分解過程:
- 將造成部分相依的屬性獨立拆解為一個新關連,其餘屬性留在原關連中並保留外來鍵連結:
- 獨立部分相依關係:取 ,組成關連 。
- 剩餘屬性:從原關連扣除被決定的非主屬性 ,組成關連 。
- 檢驗分解後的關連:
- 在 中,功能相依為 ,候選鍵為 。
- 在 中,功能相依為 ,候選鍵仍為 。非關鍵欄位 均完全相依於 (因為 或 單獨皆無法決定 或 ),不存在部分功能相依。
- 關鍵欄位標示:
- 之關鍵欄位為:
- 之關鍵欄位為:(複合主鍵 )
(二) 第三正規化(3NF)處理
- 理由分析:
- 檢視經 2NF 處理後的兩個關連:
- 關連 :相依關係為 ,決定者 為候選鍵(超鍵),已符合 3NF。
- 關連 :候選鍵為 。存在相依鏈 與 。
第 五 題20 分
有一資料庫記載一些客戶資料,和他們下訂單訂購貨物的資訊如下:
客戶(身分證字號,姓名,電話,地址,年齡)
貨品(貨品編號,貨名,價格,庫存量)
訂單(貨品編號,身分證字號,訂貨日期,訂購數量)
請用 SQL 回答下列查詢。
(一) 找出所有年齡大於 歲(年齡 ),所下訂單之訂貨日期為 20180101 的客戶,列出他們的姓名和地址。(10 分)
(二) 找出年齡低於 歲的客戶,列出他們的姓名、電話和在 2017 年(20170101 訂貨日期 20171231)裡下訂單的次數。(10 分)
登入後即可作答並保存紀錄。
核心觀念
本題評量關聯式資料庫結構化查詢語言(SQL)的核心操作,重點涵蓋:
- 多資料表連接(Table Join):以主鍵(Primary Key)與外來鍵(Foreign Key)建立關聯,包含內部連接(
INNER JOIN)與外部連接(LEFT OUTER JOIN)的選用時機。 - 重複資料的消除(Deduplication):一對多關聯查詢下,使用
DISTINCT或子查詢(IN/EXISTS)避免重複列出母表實體。 - 資料群組化與聚合函數(Grouping & Aggregation):
GROUP BY子句與COUNT函數的配合,以及SELECT欄位與GROUP BY欄位的語法相容性規則。 - 外部連接與聚合函數的邊界處理:當需要統計「包含 次」的事件時,必須使用
LEFT JOIN搭配「欄位計數」COUNT(欄位名),而非「列數計數」COUNT(*)。
解題方法
第 (一) 題:年齡大於 歲且於 20180101 下單之客戶姓名與地址
- 資料表關聯與切入點:
- 篩選目標「年齡」位於
客戶資料表;「訂貨日期」位於訂單資料表。 - 兩表透過
身分證字號關聯。
- 關鍵邏輯與防重複設計:
- 一位客戶在 20180101 當天可能訂購多筆貨品(在
訂單資料表產生多筆紀錄)。若僅使用單純的JOIN,查詢結果會出現重複的客戶資料。 - 為符合關聯式資料庫查詢規範,必須使用
DISTINCT消除重複列,或利用WHERE ... IN (子查詢)僅自客戶表單向檢索符合條件之實體。
- 推薦實作(JOIN 寫法):
SELECT DISTINCT C.姓名, C.地址
FROM 客戶 C
JOIN 訂單 O ON C.身分證字號 = O.身分證字號
WHERE C.年齡 > 60
AND O.訂貨日期 = '20180101';
(註:亦可使用子查詢寫法:WHERE 年齡 > 60 AND 身分證字號 IN (SELECT 身分證字號 FROM 訂單 WHERE 訂貨日期 = '20180101'))
第 (二) 題:年齡低於 歲客戶之姓名、電話及 2017 年下單次數
- 題目意圖深入剖析(0 次下單之處理):
- 題幹要求「找出年齡低於 歲的客戶,列出他們的姓名、電話和在 2017 年裡下訂單的次數」。
- 嚴謹的題意解讀應涵蓋「所有」年齡低於 歲的客戶。若該名年輕客戶在 2017 年從未下單,其訂單次數應正確顯示為 ,而非被整筆過濾排除。
- 為保留下單次數為 的客戶,必須以
客戶表為主表,對訂單表進行左外部連接(LEFT JOIN)。
- 連接條件與篩選條件的位置(ON vs. WHERE):
- 限制「2017 年」的條件必須放在
LEFT JOIN的ON子句中: - 若誤將訂貨日期篩選置於
WHERE子句,因無訂單者的訂貨日期為NULL,會被WHERE條件篩除,導致外部連接退化為內部連接。
- 聚合計數的正確使用:
- 必須使用
COUNT(O.身分證字號)或COUNT(O.貨品編號)。
第 六 題10 分
說明什麼是「區塊鏈」(Block Chain)。列舉四個區塊鏈最重要的特色,並說明之。(10 分)
登入後即可作答並保存紀錄。
核心觀念
本題評量新興資訊科技中「分散式帳本技術(Distributed Ledger Technology, DLT)」的核心概念與架構特徵。考生必須掌握:
- 區塊鏈的架構本質:由點對點(P2P)網路、密碼學雜湊(Cryptographic Hash)、非對稱加密與共識演算法共同組成的「分散式時間戳記帳本」。
- 區塊鏈的四大本質特色:去中心化(Decentralization)、不可竄改性(Immutability)、透明與可追溯性(Transparency & Traceability)、基於共識機制的自治信任(Consensus & Trustless)。
解題方法
本題配分為 10 分,屬於標準的申論型觀念題。答題策略與版面配置建議如下:
- 第一部分:定義說明(佔 2~3 分)
- 採「層次化定義法」:從「資料結構特徵」(由包含時間戳記與雜湊值的區塊循序串聯)提升至「分散式系統架構」(去中心化、多節點共享與驗證之帳本系統),避免僅以「比特幣的底層技術」等通俗口語草率帶過。
- 第二部分:四大特色列舉與深入說明(佔 7~8 分)
- 採「主題標籤+運作機制+帶來的效益」三段式論述。
- 挑選最核心、最具區隔度的四項特質,不可將同義概念拆成兩點(例如不可將「可追溯性」與「公開透明」強行拆為各自獨立的兩大特色,以免內容重複單薄)。
選項分析
本題為申論問答題,無既定選項。評閱與得分關鍵剖析如下:
- 定義部分:必須精準提及「密碼學雜湊指針(Hash Pointer)」、「依時間序列串接」與「分散式共識記帳」。若僅回答「是一種網路資料庫」,缺乏密碼學與分散式結構要素,僅能得基本分數。
- 特色一(去中心化):需說明節點地位對等,去除中介代理人(Intermediary),其核心優勢在於消除「單點失效(Single Point of Failure, SPOF)」風險。
- 特色二(不可竄改性):需指明利用單向雜湊函數(如 SHA-256)的前後勾稽。若竄改某區塊資料,該區塊的雜湊值即改變,後續所有區塊雜湊值隨之連鎖失效,竄改成本極高,幾不可能成功。
- 特色三(公開透明與歷史可追溯性):所有參與節點均保留完整帳本副本,每筆交易均有明確時間戳記,自創世區塊(Genesis Block)以來具備完整審計軌跡(Audit Trail)。
- 特色四(共識機制與無信任信任):透過數學演算法(如 PoW、PoS)達成拜占庭容錯(BFT),讓彼此互不信任的節點在無中央機關擔保下,仍能達成一致性(Consistency)。
解題技巧
- 關鍵字精準踩點:閱卷委員採「關鍵字計分法」,答題時務必出現「分散式帳本(DLT)」、「雜湊函數(Hash)」、「時間戳記(Timestamp)」、「單點失效(SPOF)」、「共識機制(Consensus Mechanism)」等專業名詞。
- 避免混淆概念:區塊鏈是底層技術架構,加密貨幣(如比特幣)僅為其應用之一,答題切忌喧賓奪主、通篇只談虛擬貨幣買賣。