110 關務特考三等 資訊處理 資料結構 考古題詳解
第 一 題20 分
大學生只剩 5 天準備 4 科 ,估計的成績點數如下表所示。每 1 科準備至少 1 天,使用窮舉法(exhaustive search)有幾種可能?如何最適化?最適成績 ?
| 天數 | 科目 | 科目 | 科目 | 科目 |
|---|---|---|---|---|
| 1 天 | 3 | 5 | 2 | 4 |
| 2 天 | 5 | 6 | 4 | 4 |
| 3 天 | 6 | 8 | 7 | 5 |
(20 分)
登入後即可作答並保存紀錄。
核心觀念
這題考的是窮舉法(exhaustive search):列出所有符合限制的配置,計算各配置的總成績,再選出總成績最高者。
令 表示分配給科目 的準備天數。每科至少準備 1 天,總共只有 5 天,因此:
各科分數依準備天數查表,目標是最大化四科成績總和 。
解題方法
先為四科各分配 1 天,共用掉 4 天;剩下 1 天可加給任一科。因此所有合法分配恰有以下 4 種:
| 成績計算 | 總成績 | |
|---|---|---|
| 16 | ||
| 15 |
第 二 題20 分
(一) 求下列遞迴函數值 ?
int f(int n) {
if (n == 0)
return 0;
else
return f(n - 1) + n * n;
}
(10 分)
(二) 求遞迴函數 ?。
(10 分)
登入後即可作答並保存紀錄。
核心觀念
本題考遞迴函數的基礎情況與遞迴關係式。程式中,當 時回傳 ;當 時,函數值由前一項 加上 得到:
因此,計算 等同於把 到 逐項累加。
解題方法
(一)求
依照遞迴式逐層代入,直到遇到基礎情況:
(二)求 ,
由遞迴式反覆展開:
第 三 題15 分
,若有一棵 元樹(-ary tree),其中分支度(degree)為 的節點數為 個,,請問該 元樹的葉節點數 為何?
(15 分)
登入後即可作答並保存紀錄。
核心觀念
樹中每個節點的分支度,是該節點所擁有的子節點數。若分支度為 的節點有 個,則分支度為 的節點共提供 條由父節點連向子節點的邊。
對任何非空樹,若總節點數為 ,則邊數為 。因此,所有節點的分支度總和必須等於 。
解題方法
令葉節點數為 。題目給定分支度為 的節點有 個,,所以非葉節點數為
加上葉節點後,總節點數為
另一方面,非葉節點所提供的邊數,也就是分支度總和,為
由樹的邊數等於總節點數減一,可得
移項整理:
第 四 題15 分
密文(Cipher text or Cypher text):明請到家玩天你我來。
應用環狀串列(circular linked list),請問明文(Plain text or Clear text)為何?
(15 分)
登入後即可作答並保存紀錄。
核心觀念
本題考環狀串列的循環特性:節點依序相連,最後一個節點會再連回第一個節點。因此,若以串列表示密文並依指定步長循環移動,越過尾端時要從首端繼續計數。
解題方法
題目未說明環狀串列的起點、移動方向或步長;依密文與預期解碼方式,採用「每次向右移動一個字,從密文首字開始讀取」的設定。
將密文「明請到家玩天你我來」依序編號:
| 位置 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
|---|
第 五 題30 分
(一) 如下圖,設背包限重 100,有 共五個不可分割物件,請問依貪婪策略(Greedy Algorithm),- 整數背包問題(knapsack problem)/貨物裝載問題(cargo loading problem)其最大利益為何?其對應的 - 整數規劃為何?
(原卷圖示未隨文字層擷取,請參考原卷。)
| 物件 | 重量 | 利益 |
|---|---|---|
| 10 | 20 | |
| 20 | 30 | |
| 30 | 66 | |
| 40 | 40 | |
| 50 | 60 |
(20 分)
(二) 有 共五個可分割物件,請問依貪婪策略,- 分數背包其最大利益為何?
(10 分)
登入後即可作答並保存紀錄。
核心觀念
本題比較兩種背包問題:
- 0-1 背包:物件不可分割,每件只能整件放入或不放入,以 表示。
- 分數背包:物件可分割,可取其中一部分,以單位重量利益 由高至低取用。
依貪婪策略,先計算各物件的利益重量比 ,再由高至低選取。
解題方法與計算
各物件的利益重量比為:
| 物件 | 重量 | 利益 | |
|---|---|---|---|
| A | 10 | 20 | 2 |
| B | 20 | 30 | 1.5 |
| C | 30 | 66 | 2.2 |
| D | 40 | 40 | 1 |
| E | 50 | 60 | 1.2 |
依利益重量比排序為 。
(一)不可分割的 0-1 背包
背包限重為 。依排序逐件檢查:
- 放入 C:重量 ,利益 ,剩餘容量 。
- 放入 A:重量 ,利益 ,剩餘容量 。
- 放入 B:重量 ,利益 ,剩餘容量 。
- E 重量為 ,超過剩餘容量,略過。
- 放入 D:重量 ,利益 ,剛好用滿容量。
因此選取 ,總重量為 ,總利益為:
對應的 整數規劃為: