111 調查局特考三等 電子科學組 計算機概論 考古題詳解
第 一 題20 分
當一系統存在一安全序列(safe sequence)時才處於安全狀態;若一個系統中有四個程序(process)分別為 、、 及 ,與五個可被分配資源 、、、 及 ,下表包含目前資源分配狀況(已分配資源與可用資源)與最大資源需求。為保證系統處於安全狀態(safe state),表中 之最小值應為多少?
| 程序 | 已分配資源 | 最大資源需求 |
|---|---|---|
可用資源為 。
登入後即可作答並保存紀錄。
核心觀念
本題考銀行家演算法的安全性判定。每個程序的尚需資源量為:
若某程序的 Need 每一項都不大於目前可用資源,就能假設該程序完成,並將它已分配的資源歸還。若所有程序都能依序完成,這個順序就是安全序列,系統處於安全狀態。
解題方法
先計算各程序的尚需資源量:
| 程序 | 尚需資源 Need(A、B、C、D、E) |
|---|---|
可用資源為 。一開始 ,因此 、 都因需要 而無法執行, 因需要 而無法執行。 要求 、、,所以必須有 才能先完成。
第 二 題20 分
IP 位址 之地址屬於 B 類地址,若要切割成 10 個子網,且全部都要連上電腦網路,請問所有子網路掩碼(subnet mask)應設為多少?
登入後即可作答並保存紀錄。
核心觀念
本題旨在測驗 IPv4 分類定址法(Classful Addressing)與子網路劃分(Subnetting)的運算能力,核心概念如下:
- IPv4 類別預設遮罩:
- 類別 B(Class B)位址之首碼範圍為 。
- 預設網路 ID 為前 16 位元,主機 ID 為後 16 位元,預設子網路遮罩為
255.255.0.0(以 CIDR 表示為/16)。
- 借位原則(Subnet Borrowing):
- 子網路切割是透過向「主機位元(Host Bits)」借用 個位元充當「子網路位元(Subnet Bits)」。
- 可劃分的子網路數量公式:
- 現行標準(RFC 1878 / CIDR,支援 Subnet Zero 與 All-Ones Subnet):可劃分子網路數為 。
- 早期標準(RFC 950,扣除全 0 與全 1 子網):可劃分子網路數為 。
- 子網路遮罩合成:
- 將所有網路位元與借用的子網路位元皆設為二進位
1,其餘主機位元設為二進位0,再轉換為十進位點分標記法(Dotted-Decimal Notation)。
解題方法
步驟一:確認原始類別與位元配置
題目給定之 IP 位址為 ,其第一個八位元組數值為 (落在 區間),屬於標準 Class B 位址。
- 網路位元數:16 位元。
- 主機位元數:16 位元。
- 預設子網路遮罩:
255.255.0.0。
步驟二:計算需借用的子網路位元數
題目要求將網路切割成至少 10 個子網路,且全部都要能連上電腦網路:
- 若依現行網際網路標準(RFC 1878 / CIDR): 當 時,(不足以提供 10 個子網)。 當 時,(滿足需求)。
- 若依傳統 RFC 950 標準(排除全 0 與全 1 之子網): 同樣可得 。
- 因此,無論依循何種規範,皆必須向主機位元借用 4 個位元()。
步驟三:計算並推導子網路遮罩
向第三個八位元組借用高位的 4 個位元後,新的網路遮罩總長度為:
第 三 題20 分
最大堆積(Max Heap)是一個完整二元樹(complete binary tree),將以下數列 依序插入最大堆積中,其時間複雜度為何?
🖼️【此處有附圖,請對照原卷】
登入後即可作答並保存紀錄。
核心觀念
最大堆積是一種完整二元樹,每個父節點的值都大於或等於子節點。插入新值時,先把它放在堆積最後一個位置,再與父節點比較;若新值較大,就向上交換,直到符合最大堆積性質。
含有 個節點的完整二元樹高度為 ,因此單次插入最多向上調整 層。
解題方法
依圖中的層序排列,原始最大堆積為 。逐一插入題目數列,並在每次插入後向上調整:
- 插入 :先放在 的下一個位置,接著依序與 、 交換,得到 。
- 插入 :先放在 的下一個位置,接著依序與 、、 交換,得到 。
- 插入 :先放在 的下一個位置,再與 、 交換,得到 。
第 四 題20 分
使用氣泡排序法(bubble sort)將陣列 由左至右排序成由小至大之陣列 ,請問在排序過程中總共發生幾次陣列元素之交換?
登入後即可作答並保存紀錄。
核心觀念
- 氣泡排序法(Bubble Sort)原理: 氣泡排序法屬於交換排序(Exchange Sort)。在由小至大的排序過程中,演算法依序比較相鄰的兩個元素,若前項大於後項(即 ),則將兩者互換(Swap)。每一回合(Pass)會將目前未排序區間中的最大值,如氣泡般逐步「浮」至該區間的最右端定位。
- 交換次數與逆序對(Inversion)的等價性: 在相鄰元素比較的排序法(如標準氣泡排序法)中,每一次相鄰元素的互換操作,恰好能且僅能消除原始序列中的一個逆序對(若 且 ,則稱 為一個逆序對)。因此,無論比對順序如何實作,氣泡排序法過程中的總交換次數恆等於初始陣列的逆序對總數。
解題方法
給定陣列初始狀態為: 陣列長度 ,元素索引為 。以下依標準氣泡排序法(由左向右掃描、相鄰比較)逐步追蹤每一回合(Pass)的交換過程:
【第一回合(Pass 1)】(浮出未排序區間最大值至索引 6)
- 比較 與 :,不交換。
- 比較 與 :,交換(第 1 次)
- 比較 與 :,交換(第 2 次)
- 比較 與 :,交換(第 3 次)
- 比較 與 :,不交換。
- 比較 與 :,交換(第 4 次)
- 本回合結束狀態:,最大值 已就位。
- 本回合交換次數: 次。
【第二回合(Pass 2)】(浮出次大值至索引 5)
- 比較 與 :,交換(第 5 次)
- 比較 與 :,交換(第 6 次)
- 比較 與 :,交換(第 7 次)
- 比較 與 :,不交換。
- 比較 與 :,交換(第 8 次)
- 本回合結束狀態:,數值 已就位。
- 本回合交換次數: 次。
【第三回合(Pass 3)】(浮出第 3 大值至索引 4)
- 比較 與 :,交換(第 9 次)
- 比較 與 :,交換(第 10 次)
第 五 題20 分
愛麗絲與鮑伯藉由非對稱式加密 RSA 進行資料加密傳輸,加密選擇之兩質數分別為 及 。愛麗絲利用鮑伯提供之公鑰 將訊息進行加密,鮑伯收到訊息後,使用私鑰 進行解密,請計算私鑰可能 值。
登入後即可作答並保存紀錄。
核心觀念
本題評量**RSA 非對稱式密碼系統(RSA Cryptosystem)之金鑰生成原理,涉及數論中的尤拉總計函數(Euler's Totient Function)與模反元素(Modular Multiplicative Inverse)**求解。
- 模數(Modulus):
- 尤拉總計函數 : 當 、 為質數時,小於且互質於 的正整數個數為:
- 私鑰指數 的定義: 公鑰指數 與私鑰指數 在模 下互為乘法反元素,滿足同餘方程式: 即存在整數 ,使得:
解題方法
步驟一:計算模數 與尤拉函數
題目給定兩質數 、:
- 模數 :
- 尤拉總計函數 :
步驟二:確認公鑰指數 之合法性
題目給定公鑰 。 驗證 ,兩者互質,符合 RSA 加密指數要求。
步驟三:求解私鑰指數 (模反元素)
依據定義,私鑰 必須滿足: 此式等價於尋找整數 ,使得:
由最小非負整數 開始代入檢驗:
- 當 時,(非整數)
- 當 時,(整數解)
步驟四:給出 值的可能範圍
在模算術體系中,同餘解具週期性,通解為: