109 地方特考三等 統計 資料處理 考古題詳解
第 一 題25 分
假設有三個行程(Process)在很短的時間內依序先後抵達等待佇列,每個行程所需 CPU 執行的時間如下:
| 行程抵達次序 | 所需執行時間(毫秒) |
|---|---|
試問若作業系統採用以下三種不同的排程演算法,每個行程所需的平均等待時間分別為何?
(1) 先來先做排程(First-Come, First-Served)。
(2) 循環分配排程(Round Robin),並以 毫秒為時間切割額度(Time Slice)。
(3) 假設 、、 同時抵達等待佇列,最短工作優先排程(Shortest Job First)。
登入後即可作答並保存紀錄。
核心觀念
本題考查排程演算法中的等待時間:行程從抵達等待佇列,到第一次取得 CPU 執行前所等待的時間;若行程中途被暫停,暫停後等待重新取得 CPU 的時間也要計入。
平均等待時間為:
三種演算法的規則如下:
- 先來先做(FCFS):依抵達順序執行,取得 CPU 後持續執行至完成。
- 循環分配(Round Robin):行程依佇列順序輪流執行,每次最多使用一個時間切割額度;未完成者回到佇列尾端。
- 最短工作優先(SJF):同時可執行的行程中,先執行所需 CPU 時間最短者。
解題方法
(1) 先來先做排程(FCFS)
依抵達順序 執行:
| 行程 | 執行區間 | 等待時間 |
|---|---|---|
| ~ | ||
| ~ | ||
| ~ |
因此:
(2) 循環分配排程(Round Robin,時間切割額度 毫秒)
各行程依佇列順序輪流執行,每次最多執行 毫秒:
完成時間分別為: 在 毫秒完成, 在 毫秒完成, 在 毫秒完成。
第 二 題25 分
關聯代數(Relational Algebra)係用來描述關聯資料庫中資料表之間的操作方式。今有兩個關聯資料表 及 ,試將以下關聯代數運算式轉換成適當之 SQL 語法。
登入後即可作答並保存紀錄。
核心觀念
本題考查關聯代數轉換為 SQL 的基本對應:
- 選擇運算 :篩選符合條件的資料列,對應 SQL 的
WHERE。 - 投影運算 :選取指定欄位,對應 SQL 的
SELECT欄位清單。 - 笛卡兒積 搭配連結條件:對應 SQL 的資料表連結(
JOIN)及ON條件。
題目先以 Author.id = Book.Aid 將作者與書籍配對,再篩選書籍類別為「科幻」,最後只輸出作者姓名與書名。
解題方法
依照由內而外的運算順序轉換:
- 最內層 :先將
Author與Book依作者識別欄位及書籍作者欄位連結。 - 外層 :保留類別為「科幻」的書籍。
- 最外層 :只輸出作者姓名及書名。
因此,適當的 SQL 語法為:
第 三 題25 分
請說明以下三種無線通訊技術在傳輸距離、傳送速率、耗電量、成本等面向之差別及使用情境。
(1) ZigBee
(2) Wi-Fi
(3) Bluetooth
登入後即可作答並保存紀錄。
核心觀念
本題比較三種短距離無線通訊技術的設計取向:ZigBee 偏向低功耗、低速率與大量感測節點;Wi‑Fi 偏向高速率與區域網路連線;Bluetooth 偏向個人裝置間的短距離連接。比較時應同時考量傳輸距離、速率、耗電、成本與網路用途,不能只看單一規格。
各技術的實際距離與速率會受版本、頻段、天線、發射功率、障礙物及干擾影響。以下採常見應用中的概略值;距離與速率是典型量級,不代表所有設備都能達到。
解題方法
依序從「傳得多遠、傳得多快、耗電多少、建置成本與適用情境」比較,再連結到各技術的設計目的:
| 比較面向 | ZigBee | Wi‑Fi | Bluetooth |
|---|---|---|---|
| 傳輸距離 | 常見室內約數公尺至數十公尺;透過網狀網路可由節點接力擴大涵蓋範圍 | 常見室內約數十公尺,室外或良好環境可更遠;實際範圍受基地台與障礙物影響 | 傳統短距離連線常見約數公尺至數十公尺;不同功率等級與版本範圍有別 |
| 傳送速率 | 低速率,常見規格量級為數十至數百 kbps | 三者中通常最高;實際吞吐量依 Wi‑Fi 世代、頻寬與訊號條件而異 | 一般低於 Wi‑Fi;傳統藍牙常用於語音與周邊資料,低功耗藍牙則適合少量、間歇性資料 |
| 耗電量 | 低,適合電池供電且需長時間運作的感測器 | 相對高,尤其在持續高速傳輸或維持連線時 | 一般藍牙耗電中等;低功耗藍牙(BLE)耗電低,適合小型電池裝置 |
| 成本 | 通訊模組成本通常低;網狀網路可能需要較多節點與網路規劃 | 設備與網路建置成本通常較高,且基地台需供電;家用及商用設備普及 | 晶片與模組普及、成本通常低;連線設定簡單,適合大量消費性周邊設備 |
第 四 題25 分
請解釋以下資料處理技術的運作原理。
(1) 合併排序法(Merge Sort)
(2) 貪婪演算法(Greedy Algorithm)
登入後即可作答並保存紀錄。
核心觀念
合併排序法是一種「分治法」(Divide and Conquer)。它將待排序資料反覆切分成較小的子序列,直到每個子序列只剩一個元素;接著將已排序的子序列兩兩合併,逐步形成較大的排序結果。
單一元素必然已排序,因此排序工作的關鍵在於合併兩個已排序序列。
解題方法
以由小到大排序 為例:
- 分割:持續將序列切成左右兩半,直到每組只剩一個元素。
- 合併:每次比較兩個子序列最前面的元素,取較小者放入結果序列;某一側用完後,將另一側剩餘元素依序接上。
- 逐層合併:將長度為 1 的序列合併為長度為 2,再合併為長度為 4,最後合併成完整排序序列。
例如,合併 與 時,依序比較並取出較小值,得到 。
遞迴關係可寫為:
其中,兩個大小約為 的子問題需各自排序,而合併全部元素需 時間。因此合併排序的時間複雜度為:
最佳、平均與最差情況皆為 。典型的陣列實作需要 額外空間;若合併時遇到相等鍵值,先取左側元素,即可維持穩定性。
解題技巧
答題時應交代「反覆分割至單一元素」與「合併已排序子序列」兩階段,並說明合併時如何比較與排列。常見混淆是把合併排序寫成只會分割:分割是建立子問題,真正產生完整排序結果的是合併。