108 年 國立中山大學資訊工程學系碩士班甲組《離散數學與演算法》
第 1 題
A committee of 14 is to be selected from 10 men and 10 women. In how many ways can the selection be carried out if
(a) there must be seven men and seven women?
(b) there must be at least eight men?
登入後即可作答並保存紀錄。
核心觀念
本題屬於離散數學中「組合計數」(Combinatorics)的經典應用題,主要考驗考生對以下基本定義與原理的理解與運用:
-
組合公式(Combination Formula):從 個相異物件中不考慮順序取出 個物件的方法數記作 或 ,其定義為:
且具備對稱性質:。 -
乘法原理(Multiplication Principle):若完成某個任務需分為若干個相續的獨立步驟,且第一步驟有 種方法、第二步驟有 種方法,則完成整項任務的方法數為 。
-
加法原理(Addition Principle):若完成某個任務可以透過若干個彼此互斥(Mutually Exclusive)的情境或分類來達成,則總方法數為各情境方法數之和。
解題方法
本題設定共有 10 名男性與 10 名女性(合計 20 人),需選出 14 人組成委員會。
(a) 恰選出 7 名男性與 7 名女性
此挑選過程可分為兩個獨立選擇步驟:
- 選男性:從 10 名男性中選出 7 名,方法數為 。
利用對稱性計算:
- 選女性:從 10 名女性中選出 7 名,方法數為 。
同理可得:
依據乘法原理,同時選出 7 男 7 女之總選擇方法數為:
(b) 至少選出 8 名男性
委員會總人數固定為 14 人。設選出的男性人數為 ,因為要求「至少 8 名男性」且男性總數只有 10 人,故 的可能取值為 。相對應的女性人數即為 人。
依據男性人數進行互斥分類討論:
- 情境一:選出 8 名男性與 6 名女性 ()
- 從 10 名男性選 8 人的方法數:
第 2 題10 分
Verify that , for primitive statements p, q, and r.
登入後即可作答並保存紀錄。
核心觀念
本題考查命題邏輯中的:
- 雙條件命題: 表示 與 真值相同,且等價於
- 蘊涵命題的傳遞性:
- 命題等價的證明:證明左右兩邊可以互相推出。
令
題目要求證明 為永真命題。
解題方法
採用「雙向蘊涵」證明法,分別證明:
以及
如此即可得到 。
證明
由雙條件命題的定義:
因此,若
為真,則三個蘊涵命題必定同時為真:
所以:
證明
已知:
要證明三個雙條件命題,必須補出各自的反向蘊涵。
證明
已知 。
另一方面,由
利用蘊涵的傳遞性可得:
因此:
也就是:
證明
第 3 題
Let A, B be sets from a universe Ū.
(a) Write a quantified statement to express the proper subset relation A ⊂ B.
(b) Negate the result in part (a) to determine when A ⊄ B.
登入後即可作答並保存紀錄。
核心觀念
嚴格子集 包含兩個條件:
- 中每個元素都屬於 ,即 。
- 至少有一個元素不屬於 ,即 。
因此:
解題方法
(a) 表示
依照嚴格子集的定義,答案為:
第一部分表示 沒有任何元素超出 ;第二部分表示 至少包含一個 沒有的元素,因此兩集合不相等。
(b) 否定
將 (a) 的命題整體否定:
其中
其否定為:
這表示 至少有一個元素不在 中,也就是 。
另一部分為:
其否定為:
等價於:
第 3 題
Let A, B be sets from a universe Ū.
(a) Write a quantified statement to express the proper subset relation A ⊂ B.
(b) Negate the result in part (a) to determine when A ⊄ B.
登入後即可作答並保存紀錄。
核心觀念
嚴格子集 包含兩個條件:
- 中每個元素都屬於 ,即 。
- 至少有一個元素不屬於 ,即 。
因此:
解題方法
(a) 表示
依照嚴格子集的定義,答案為:
第一部分表示 沒有任何元素超出 ;第二部分表示 至少包含一個 沒有的元素,因此兩集合不相等。
(b) 否定
將 (a) 的命題整體否定:
其中
其否定為:
這表示 至少有一個元素不在 中,也就是 。
另一部分為:
其否定為:
等價於:
第 4 題
(a) Consider an 9 × 9 chessboard. It contains eighty-one 1 × 1 squares and one 9 × 9 square. How many 3 x 3 squares?
(b) Now consider an n × n chessboard for some fixed n ∈ Z+. For 1 ≤ k ≤ n, how many k xk squares are contained in this chessboard?
登入後即可作答並保存紀錄。
核心觀念
本題屬於組合數學(Combinatorics)中的格網計數問題(Grid Counting Problem),核心原理為:
- 乘法原理(Rule of Product):若一項操作可分為兩個獨立的步驟進行,第一步驟有 種選法,第二步驟有 種選法,則完成該操作共有 種不同的方法。
- 一維連續區間選擇(Subsegment Selection):在長度為 個單元格的直線區域中,選擇長度為 的連續區間,其可移動的起始位置共有 種選法。
解題方法
(a) 推導與計算
要求在 的棋盤中尋找 正方形的數量:
-
水平方向起始位置選擇:
棋盤在水平方向由 個 的單元格組成。若要容納長度為 的區塊,該區塊的左邊界(起始單元格)可以落在第 個單元格。
水平方向的可能位置數為:
-
垂直方向起始位置選擇:
同理,垂直方向由 個 的單元格組成。要容納長度為 的區塊,該區塊的上邊界(起始單元格)可以落在第 個單元格。
垂直方向的可能位置數為:
-
計算總數:
一個 的正方形由其「左上角頂點」唯一確定。根據乘法原理,水平方向與垂直方向的選擇互相獨立,故 正方形的總數為:
(b) 推導與計算
考慮一般化情況:在 的棋盤中,計算 正方形的數量(其中 ):
-
水平方向起始位置選擇:
棋盤水平方向包含 個 的單元格。長度為 的邊在水平方向上可放置的起始位置為第 格至第 格。
水平方向共有 種可能選擇。 -
垂直方向起始位置選擇:
棋盤垂直方向包含 個 的單元格。長度為 的邊在垂直方向上可放置的起始位置為第 格至第 格。
第 5 題10 分
Let S be a set of five positive integers the maximum of which is at most 9. Prove that the sums of the elements in all the nonempty subsets of S cannot all be distinct.
登入後即可作答並保存紀錄。
核心觀念
本題考查的核心知識為離散數學中的鴿籠原理(Pigeonhole Principle,又稱鴿巢原理)與集合子集計數(Subset Counting)。
- 鴿籠原理(Pigeonhole Principle):若將 個物件(鴿子)放入 個容器(鴿籠)中,且 ,則至少有一個容器包含至少 2 個物件。
- 子集計數與元素和邊界:對於大小為 的有限集合 ,包含 個元素的子集個數為組合數 。取子集元素和的最大可能值時,由集合中可能出現的最大元素決定。
解題方法
本題採用鴿籠原理進行嚴密證明。證明關鍵在於構造一個合適的子集家族(鴿子),使其數量嚴格大於該家族子集元素和可能取值的範圍總數(鴿籠),從而導出必有至少兩個相異子集具備相同的元素和。
證明推導步驟如下:
-
設定變數與範圍:
設 為包含 5 個正整數的集合。因為 中元素互異且最大值不超過 9,可將其從小到大排列為:
-
計算鴿子數量(選取特定大小的子集家族):
考慮 中所有大小為 1、2 或 3 的非空子集所構成的集合家族 :
計算家族 中子集的總個數:
因此,共有 個子集作為「鴿子」。 -
計算鴿籠數量(確定子集元素和的可能範圍):
設 表示子集 中所有元素的和。- 最小可能和:因為 ,對任意非空子集 ,其元素和最小值滿足:
- 最大可能和:因為 的元素個數最多為 3(即 ),且 中最大的三個元素滿足 ,故 的元素和最大值滿足:
- 最小可能和:因為 ,對任意非空子集 ,其元素和最小值滿足:
第 6 題
(a) Fermat's Theorem. If p is a prime, prove that for each .
(b) Euler's Theorem. For each , and each , prove that if , then .
登入後即可作答並保存紀錄。
核心觀念
本題考查離散數學與數論(Number Theory)中極為核心的兩個同餘定理:費馬小定理(Fermat's Little Theorem)與歐拉定理(Euler's Totient Theorem)。解題時需運用以下核心定義與定理:
- 同餘(Congruence):
對整數 及正整數 ,若 ,則稱 。 - 歐拉總體函數(Euler's Totient Function, ):
定義 為小於等於 且與 互質的正整數個數。若 為質數,則 。 - 簡化剩餘系(Reduced Residue System, RRS):
模 的簡化剩餘系為包含 個整數的集合 ,滿足:- 對所有 ,。
- 若 ,則 。
- 同餘消去律(Cancellation Law of Congruence):
若 且 ,則 。
解題方法與推導
(a) 證明 Fermat's Theorem:若 為質數,對所有 ,
切入點說明:採用「簡化剩餘系同餘乘積法」。先將 分為被 整除與不被 整除兩種狀況討論,利用兩兩不同餘的性質構造同餘重排。
完整推導步驟:
1. 分情況討論 與
-
情況一:若
表示 。
此時 ,定理顯然成立。 -
情況二:若
因為 為質數且 ,故 。
考慮模 的完全簡化剩餘系集合 。
將 中的每個元素皆乘以 ,構造新集合:
2. 證明 模 後的元素兩兩不同餘且皆不為 0
- 對任意 ,因為 且 ,故 ,即 。
- 若存在 使得 :
由於 ,根據同餘消去律,等式兩邊同除以 可得 。這與 的假設矛盾。
因此, 模 之後的 個餘數正好是集合 中所有元素的一個重排(Permutation)。
3. 相乘並導出結論
將 中所有元素相乘,其模 的結果必等於 中所有元素相乘:
因為 為質數,由 至 之所有整數均與 互質,故乘積 。
應用同餘消去律,將等式兩邊同除以 ,得到:
等式兩邊同乘以 ,可得:
綜合情況一與情況二,對任意 ,皆有 成立。
(b) 證明 Euler's Theorem:若 ,且 ,則
切入點說明:將 (a) 小題的簡化剩餘系乘積法推廣至一般的正整數模數 。
完整推導步驟:
1. 建立模 的簡化剩餘系
設 為模 的簡化剩餘系,其中每個 皆滿足 且 。
已知 ,將 中的每一個元素皆乘以 ,構造新集合:
第 7 題
(Algorithm points) In each of the following, . Solve for relative to the given set S, and determine the appropriate "big-Oh" form for f on S.
(a) , for , .
(b) , for , .
登入後即可作答並保存紀錄。
核心觀念
本題考查分治遞迴關係式(Divide-and-Conquer Recurrence Relations)的解法與漸近分析(Asymptotic Analysis / Big-Oh Notation)。
主要運用的定義與方法如下:
- 迭代展開法(Iterative Unrolling / Substitution Method):針對形如 且定義在 的遞迴式,透過變數變換令 (即 ),逐步展開遞迴關係至基底條件 ,再對等比級數求和以得到 的封閉形式(Closed Form)。
- 漸近上界記號(Big-Oh Notation):由封閉形式中尋找當 時的主導項(Dominating Term),確定其漸近上界 。
- 主定理(Master Theorem)驗算:可用於快速判斷與雙重確認漸近複雜度的正確性。
解題方法
(a) 子題推導
給定遞迴關係式:
步驟一:變數代換與迭代展開
令 (即 ),將遞迴式改寫為以 表示的形式:
將 繼續代入展開:
再展開一次:
推廣至第 次展開的一般式:
步驟二:代入基底條件求和
當 時,遞迴項到達基底 :
化簡後方的累加項 :
利用等比級數公式 :
將此結果與 代回:
步驟三:將 代換回 得到封閉形式與 Big-Oh
因為 ,故 ,且 :
觀察主導項(因為 ):
(b) 子題推導
給定遞迴關係式:
步驟一:變數代換與迭代展開
令 (即 ),將遞迴式改寫為:
逐步展開:
第 8 題
(Algorithm points) For each of the following pairs a, b ∈ Z+, determine gcd(a, b) (by Euclidean Algorithm) and express it as a linear combination of a, b.
(a) [6%] 251, 1920
(b) [6%] 1371, 2587
(c) [6%] 1689, 6001
登入後即可作答並保存紀錄。
核心觀念
-
歐幾里得演算法(Euclidean Algorithm)
用於求解兩正整數 的最大公因數 。根據除法原理,(其中 ),則:
持續進行帶餘除法,直到餘數為 ,此時最後一個非零餘數即為 。 -
貝祖定理(Bézout's Identity)與擴展歐幾里得演算法(Extended Euclidean Algorithm)
對於任意兩正整數 ,必然存在整數 ,使得最大公因數可以表示為 的線性組合:
透過歐幾里得演算法的「回代法」(Back-Substitution),將除法過程中的餘數反向代換,即可求得整數係數 與 。
解題方法
本題求解分為兩個核心階段:
- 求解最大公因數:由大數對小數進行連除法,記錄每一步的商數與餘數,求得最後的非零餘數 。
- 導出線性組合:從最後一個非零餘數的等式出發,逐層將餘數替換為前一步的式子,最終表示為最初兩數 與 的線性組合。
選項分析
(a) 求解 並表示為線性組合
-
第一階段:歐幾里得演算法(正向相除)
由上述可知,最後一個非零餘數為 ,故 。 -
第二階段:擴展歐幾里得演算法(反向回代)
整理得到線性組合為:
(b) 求解 並表示為線性組合
-
第一階段:歐幾里得演算法(正向相除)
由上述可知,最後一個非零餘數為 ,故 。 -
第二階段:擴展歐幾里得演算法(反向回代)
第 9 題
(Algorithm points) (a) Apply Dijkstra's algorithm to the graph shown in the following Fig. 1 and determine the shortest distance from vertex b to each of the other vertices in the graph.
(b) Find a shortest path from vertex g to each of the vertices a, b, and c.
🖼️【此處有附圖,請對照原卷】
登入後即可作答並保存紀錄。
核心觀念
此題考有向加權圖的最短路徑。邊的方向由箭頭決定,不能把有向邊當成雙向邊。Dijkstra 演算法每次選取尚未確定且暫定距離最小的頂點,再沿其出邊更新鄰點距離;本圖邊權皆為正,適用此法。
(a)由頂點 出發
圖中與計算相關的有向邊包括 權重 、 權重 、 權重 、 權重 、 權重 。初始化 ,其他頂點距離為 。
| 確定頂點 | 更新結果 |
|---|---|
| 經 到 的距離為 ,不優於 | |
| ;經 到 的距離為 ,不優於 | |
| 經 到 的距離為 ,不優於 | |
| 完成 |
因此,由 到其他各頂點的最短距離為: