109 年 國立臺灣大學工程科學及海洋工程學系碩士班丁組《離散數學(A)》
第 1 題10 分
某電商網站有 256 種不同商品,其中包含 100 種促銷商品。隨機選 25 種不同商品在網頁的 個框架中陳列,請問有多少種不同陳列方式?(提示:同商品陳列位置不同則視為不同)
登入後即可作答並保存紀錄。
核心觀念
本題屬於計數原理中的**直線排列(Permutations)**問題。
- 排列(Permutation)與組合(Combination)的判定:
- 排列:從 個不同的元素中,選出 個元素並按照特定順序排列於 個位置,方法數為:
- 組合:若僅選出元素而不考慮排列順序,方法數為:
- 排列:從 個不同的元素中,選出 個元素並按照特定順序排列於 個位置,方法數為:
- 題幹條件分析:
- 總商品種類數 。
- 網頁框架總數 個。
- 順序性:題目提示「同商品陳列位置不同則視為不同」,代表 網頁框架上的每一個位置皆為獨特且不可替代的位置,因此選出的商品放置順序至關重要。
- 干擾資訊(Distractor):題幹提到「其中包含 100 種促銷商品」,但並未對「促銷商品」與「非促銷商品」的選取數量做任何額外限制或比例要求。因此,所有 256 種商品獲選的機會與資格完全相同,100 種促銷商品為不影響計算的干擾條件。
解題方法
步驟一:計算陳列位置總數
網頁上的陳列框架為 的網格,故共有:
步驟二:應用乘法原理與排列公式
從 256 種不同商品中隨機選取 25 種不同商品陳列於 25 個不同框架中:
- 第 1 個框架有 256 種商品可選擇。
- 第 2 個框架剩餘 255 種商品可選擇。
- 第 3 個框架剩餘 254 種商品可選擇。
- 第 25 個框架剩餘 種商品可選擇。
根據乘法原理,總陳列方式數為:
步驟三:分步建構法驗證(先選後排)
亦可將過程拆解為兩階段:
第 2 題10 分
承上題。若所陳列之 25 種不同商品中,至少有 5 種為促銷商品,請問有多少種陳列方式?(提示:可有多於 5 種是促銷商品)
登入後即可作答並保存紀錄。
題目缺少第 1 題所給的促銷商品數、非促銷商品數及陳列規則,無法得到唯一數值。
若共有 種促銷商品、 種非促銷商品,選出並排列 種不同商品,則至少 種為促銷商品的陳列方式為
第 3 題10 分
承上題。若在所陳列之 個框架中,第一排 5 個固定陳列促銷商品,請問有多少種陳列方式?
登入後即可作答並保存紀錄。
核心觀念
本題屬於組合數學(Combinatorics)中的**受限排列(Restricted Permutations)與乘法原理(Multiplication Principle)**的應用。
- 乘法原理:若一個完成目標的程序可拆解為 個連續且獨立的步驟,第 1 步有 種方法,第 2 步有 種方法,……,第 步有 種方法,則完成該目標的總方法數為:
- 相異物全排列:將 個互不相同的元素放入 個相異位置,其排列總數為:
- 受限位置優先處理:在處理含有特殊限制條件的棋盤格或陣列陳列問題時,解題策略為優先計算「受限制區域」的排列數,再計算「其餘自由區域」的排列數。
解題方法
本題因缺少前導題目(承上題)關於商品種類與數量設定之完整資訊,故以下採研究所離散數學試題之標準假設:設有 件互不相同之商品填滿 格框架,其中包含 件指定之相異促銷商品與 件相異一般商品。
對於 的矩陣框架(共 25 個獨立位置),陳列步驟劃分如下:
-
步驟一:第一排促銷商品的陳列
第一排共有 5 個框架位置,需將 5 件指定的促銷商品安排於此。5 件相異促銷商品放入 5 個框架位置的全排列數為:
-
步驟二:其餘四排一般商品的陳列
扣除第一排後,剩下的框架位置數為 個。將剩餘 20 件相異一般商品安排於這 20 個位置的全排列數為:
第 4 題10 分
假設顧客之購物記錄可以反應未來需求。購物記錄中 80 筆是 ,60 筆是 ,40 筆是 ,20 筆是 。請用條件機率算出,對已經買 的顧客,該推銷哪一樣其它商品的機會最大?
登入後即可作答並保存紀錄。
核心觀念
本題考查離散機率論(Discrete Probability)中的條件機率(Conditional Probability),同時亦為資料探勘中購物籃分析(Market Basket Analysis)尋找關聯規則置信度(Confidence)的經典應用。
-
條件機率定義:
設 與 為樣本空間中的兩事件,且 ,則在已知事件 發生的條件下,事件 發生的條件機率定義為:
其中 表示事件 發生的樣本個數, 表示事件 與 同時發生的樣本個數。 -
問題轉化:
題目欲求「對已經購買品5的顧客,推銷哪一種其它商品的機會最大」。在統計與機率學上,即求使條件機率 達到最大值的商品 。
解題方法
步驟一:分類購物記錄資料
總購物筆數 筆。各類購物記錄如下:
- : 80 筆
- : 60 筆
- : 40 筆
- : 20 筆
步驟二:計算購買「品5」的總筆數
包含「品5」的購物記錄僅有 與 :
步驟三:分別計算各商品在「買品5」前提下的條件機率
-
品1:
同時包含「品1」與「品5」的記錄為 與 :
條件機率為:
-
品2:
同時包含「品2」與「品5」的記錄僅有 :
條件機率為:
-
品3:
同時包含「品3」與「品5」的記錄僅有 :
條件機率為:
第 5 題10 分
承上題。請用子集合關係算出,哪兩樣商品一起合售促銷的機會最大?
登入後即可作答並保存紀錄。
核心觀念
在離散數學中,**集合論(Set Theory)**的子集合關係是用於衡量事件關聯性與連帶銷售(Cross-selling)強度的數學基礎。
- 交易集合定義:
設全集 為所有顧客交易紀錄之集合。對於任意商品 ,定義 為「購買商品 的顧客交易集合」。 - 商品合售之子集合關係:
兩商品 與 的共同購買顧客人數對應至集合的交集(Intersection) 。
若要評估將商品 與 一起合售促銷的機會,即衡量購買其中一商品的顧客同時購買另一商品的強度,數學上可由**單向包含度(Inclusion Degree / Confidence)與雙向重疊強度(Jaccard 相似度)**進行判斷:- 單向包含度(置信度):
當 時,(即 100% 購買商品 的顧客皆購買商品 ),代表 完全包含於 中,子集合包含關係最強。 - 雙向重疊強度(Jaccard 相似度):
數值越接近 ,代表兩商品的購買族群重疊度越高,合售促銷效果最佳。
- 單向包含度(置信度):
解題方法
本題延續前題,缺少的條件為前題給定的各商品顧客購買交易紀錄集合;在假設前題給定商品 的顧客交易集合分別為 、、 與 下進行推導與計算。
解題推導步驟如下:
-
計算各商品交易集合之基數(Cardinality):
-
檢視商品組合之子集合與交集關係:
針對所有可能合售的商品對 ,求出交集 、聯集 ,並計算包含度與 Jaccard 相似度。 -
比較包含關係與重疊度:
找出滿足子集合包含關係(即 )且重疊比例最高之商品對,該組合即為合售促銷機會最大者。
選項分析
針對各商品組合對逐一進行深入分析與比較:
- 組合 (A) 商品 與商品 :
- 交集計算:。
- 子集合關係:因為 ,故成立子集合關係 。
- 包含度與相似度:
第 6 題15 分
購物記錄中商品的相關性,可以表示成 graph。試以 graph 舉例+說明:
(a) 何謂 Hamilton cycle?
(b) 何謂 strongly connected graph?
(c) 何謂 bi-connected graph?
登入後即可作答並保存紀錄。
核心觀念
本題考驗圖論(Graph Theory)的基本定義,並結合真實巨量資料分析(購物車分析、推薦系統)進行建模應用。主要涵蓋以下觀念:
- 購物記錄圖模型(Shopping Record Graph Modeling):
- 頂點集合 :代表購物記錄中的各項商品。
- 邊集合 :代表商品之間的關聯性。
- 無向邊 :代表商品 與商品 經常在同一張訂單中被同時購買。
- 有向邊 :代表購買商品 後,接著購買商品 的順序推薦關聯。
- 漢米爾頓迴圈(Hamilton cycle):圖中通過所有頂點恰好一次且回到起點的閉合路徑。
- 強連通圖(Strongly connected graph):針對有向圖,任意兩頂點之間皆存在雙向的可達有向路徑。
- 雙連通圖(Bi-connected graph / 重連通圖):針對無向圖,連通且不含任何關節點(Articulation point / Cut-vertex),即移除任意單一頂點後圖形仍保持連通。
解題方法
解題切入點為先建立「商品關聯圖」的符號表達體系,再針對三個子題分別提供:
- 形式化數學定義
- 實際購物情境實務說明
- 具體圖形範例(明確給出頂點集 與邊集 並驗證)
選項與子題分析
(a) Hamilton cycle(漢米爾頓迴圈)
- 數學定義:
在圖形 中,若存在一個閉合迴圈(Cycle),滿足頂點集合 中的每一個頂點恰好出現一次,則稱此迴圈為 Hamilton cycle。 - 購物情境說明:
在商品關聯圖中,Hamilton cycle 代表一條「全商品關聯環狀路徑」。推薦系統可以從某商品出發,依據商品間的強關聯性,不重複地遍歷商城內的所有商品,最後順暢地回到初始商品,形成完整閉環。 - 圖形舉例:
- 設無向圖 ,頂點代表商品:
- 關聯邊集:
- 驗證:路徑 經過了所有頂點集合 中的元素恰好一次,最終回到起點 ,故此圖包含一個 Hamilton cycle。
- 設無向圖 ,頂點代表商品:
(b) Strongly connected graph(強連通圖)
- 數學定義:
設 為一個有向圖(Directed Graph)。若對於圖中任意兩相異頂點 ,都存在一條從 到 的有向路徑(Directed path),且亦存在一條從 到 的有向路徑,則稱 為 Strongly connected graph。 - 購物情境說明:
在商品順序購買導引圖中,有向邊 代表「購買 後會被引導購買 」。若此圖為強連通圖,代表從任意商品出發,都能透過一系列的推薦鏈到達系統內的任何其他商品,不存在無法抵達的「死角商品」。 - 圖形舉例:
- 設有向圖 ,頂點代表商品:
- 購買引導邊集:
- 設有向圖 ,頂點代表商品:
第 7 題10 分
求 的解中,, , 的整數解個數。
登入後即可作答並保存紀錄。
核心觀念
- 整數封閉性與奇偶性約束(Parity Constraint):
在不定方程 中,由於 均為整數且右式 亦為整數,故分數項 必須為整數。這意味著 必然為偶整數。 - 重複組合(Combination with Repetition / Multiset Coefficient):
若求 個變數之和等於常數 的非負整數解個數(即 ,且 ),公式為:
解題方法
步驟一:確立變數的精確範圍與約束
- 且 。
- 且 。
- 且 為偶整數 。
步驟二:變數代換簡化方程
設 ,其中 為整數。
由 可得 。
將 代入原方程 ,簡化為:
步驟三:轉換為非負整數變數
定義平移變數:
將 代入方程:
其中 均為非負整數。
步驟四:依 之可能取值進行分類討論
- 當 時:
第 8 題10 分
請用 C/C++/Java 寫一程式:輸入一字串表示字元集合,輸出此字元集合之冪集合。
(提示:字串 "abc" 表示字元集合 {a, b, c})
登入後即可作答並保存紀錄。
核心觀念
-
冪集合(Power Set)定義
對任意集合 ,由 之所有子集(Subsets)所組成的集合稱為 的冪集合,記作 或 :
-
集合勢(Cardinality)與二項式定理
若原集合 含有 個互異元素(即 ),則其冪集合的元素個數(即子集總數)為:
此性質源於二項式定理:從 個元素中分別選取 個元素的組合數總和為 。 -
位元映射(Bitmask Mapping)與雙射(Bijection)
大小為 的集合中,每個元素在子集中僅有「選取()」或「不選取()」兩種決策。因此,每個子集皆可一對一映射至一個長度為 的二進位數。整數範圍介於 至 之間的 個二進位狀態,與 中的每一個子集形成雙射關係。
解題方法
本題要求編寫程式輸入字元集合字串並輸出其冪集合。最優且最精簡的實作策略為位元遮罩法(Bitmask Approach)。
演算法邏輯與推導步驟
- 去重與初始化:集合內的元素具備「互異性」,輸入字串若包含重複字元應先進行去重處理解析出基底集合 ,設其長度為 。
- 生成二進位狀態:利用迴圈讓整數變數 從 遞增至 (即
(1 << n) - 1)。 - 檢查位元與輸出:對於每個狀態 ,遍歷其第 個位元():
- 若位元運算
(i >> j) & 1為 ,代表子集包含第 個字元 。 - 若為 ,則代表不包含。
- 若位元運算
- 構造對應子集:印出該狀態所代表的子集內容,即可不重不漏地輸出完整冪集合。