109 年 國立臺灣大學工程科學及海洋工程學系碩士班丁組《離散數學(A)》

📄 試題原卷 免費註冊後即可對照原始考卷 PDF免費註冊

第 1 題10 分

某電商網站有 256 種不同商品,其中包含 100 種促銷商品。隨機選 25 種不同商品在網頁的 5×55 \times 5 個框架中陳列,請問有多少種不同陳列方式?(提示:同商品陳列位置不同則視為不同)

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

本題屬於計數原理中的**直線排列(Permutations)**問題。

  1. 排列(Permutation)與組合(Combination)的判定:
    • 排列:從 nn 個不同的元素中,選出 kk 個元素並按照特定順序排列於 kk 個位置,方法數為:
      P(n,k)=n!(n−k)!P(n, k) = \frac{n!}{(n - k)!}
    • 組合:若僅選出元素而不考慮排列順序,方法數為:
      C(n,k)=(nk)=n!k!(n−k)!C(n, k) = \binom{n}{k} = \frac{n!}{k!(n - k)!}
  2. 題幹條件分析:
    • 總商品種類數 n=256n = 256。
    • 網頁框架總數 k=5×5=25k = 5 \times 5 = 25 個。
    • 順序性:題目提示「同商品陳列位置不同則視為不同」,代表 5×55 \times 5 網頁框架上的每一個位置皆為獨特且不可替代的位置,因此選出的商品放置順序至關重要。
    • 干擾資訊(Distractor):題幹提到「其中包含 100 種促銷商品」,但並未對「促銷商品」與「非促銷商品」的選取數量做任何額外限制或比例要求。因此,所有 256 種商品獲選的機會與資格完全相同,100 種促銷商品為不影響計算的干擾條件。

解題方法

步驟一:計算陳列位置總數

網頁上的陳列框架為 5×55 \times 5 的網格,故共有:
5×5=25 個不同位置5 \times 5 = 25 \text{ 個不同位置}

步驟二:應用乘法原理與排列公式

從 256 種不同商品中隨機選取 25 種不同商品陳列於 25 個不同框架中:

  • 第 1 個框架有 256 種商品可選擇。
  • 第 2 個框架剩餘 255 種商品可選擇。
  • 第 3 個框架剩餘 254 種商品可選擇。
  • …\dots
  • 第 25 個框架剩餘 256−25+1=232256 - 25 + 1 = 232 種商品可選擇。

根據乘法原理,總陳列方式數為:
P(256,25)=256×255×254×⋯×232=256!(256−25)!=256!231!P(256, 25) = 256 \times 255 \times 254 \times \dots \times 232 = \frac{256!}{(256 - 25)!} = \frac{256!}{231!}

步驟三:分步建構法驗證(先選後排)

亦可將過程拆解為兩階段:

🔒

後續完整解題步驟與【答案】

免費註冊,享三天全站完整詳解閱覽。

免費註冊

第 2 題10 分

承上題。若所陳列之 25 種不同商品中,至少有 5 種為促銷商品,請問有多少種陳列方式?(提示:可有多於 5 種是促銷商品)

登入後即可作答並保存紀錄。

這一題的完整詳解

題目缺少第 1 題所給的促銷商品數、非促銷商品數及陳列規則,無法得到唯一數值。

若共有 PP 種促銷商品、NN 種非促銷商品,選出並排列 2525 種不同商品,則至少 55 種為促銷商品的陳列方式為

🔒

後續完整解題步驟與【答案】

免費註冊,享三天全站完整詳解閱覽。

免費註冊

第 3 題10 分

承上題。若在所陳列之 5×55 \times 5 個框架中,第一排 5 個固定陳列促銷商品,請問有多少種陳列方式?

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

本題屬於組合數學(Combinatorics)中的**受限排列(Restricted Permutations)與乘法原理(Multiplication Principle)**的應用。

  1. 乘法原理:若一個完成目標的程序可拆解為 kk 個連續且獨立的步驟,第 1 步有 n1n_1 種方法,第 2 步有 n2n_2 種方法,……,第 kk 步有 nkn_k 種方法,則完成該目標的總方法數為:
    N=n1×n2×⋯×nkN = n_1 \times n_2 \times \cdots \times n_k
  2. 相異物全排列:將 nn 個互不相同的元素放入 nn 個相異位置,其排列總數為:
    P(n,n)=n!P(n, n) = n!
  3. 受限位置優先處理:在處理含有特殊限制條件的棋盤格或陣列陳列問題時,解題策略為優先計算「受限制區域」的排列數,再計算「其餘自由區域」的排列數。

解題方法

本題因缺少前導題目(承上題)關於商品種類與數量設定之完整資訊,故以下採研究所離散數學試題之標準假設:設有 2525 件互不相同之商品填滿 5×55 \times 5 格框架,其中包含 55 件指定之相異促銷商品與 2020 件相異一般商品。

對於 5×55 \times 5 的矩陣框架(共 25 個獨立位置),陳列步驟劃分如下:

  1. 步驟一:第一排促銷商品的陳列
    第一排共有 5 個框架位置,需將 5 件指定的促銷商品安排於此。5 件相異促銷商品放入 5 個框架位置的全排列數為:
    n1=P(5,5)=5!=120n_1 = P(5, 5) = 5! = 120

  2. 步驟二:其餘四排一般商品的陳列
    扣除第一排後,剩下的框架位置數為 25−5=2025 - 5 = 20 個。將剩餘 20 件相異一般商品安排於這 20 個位置的全排列數為:
    n2=P(20,20)=20!n_2 = P(20, 20) = 20!

🔒

後續完整解題步驟與【答案】

免費註冊,享三天全站完整詳解閱覽。

免費註冊

第 4 題10 分

假設顧客之購物記錄可以反應未來需求。購物記錄中 80 筆是 {品1, 品2, 品3}\{ \text{品1, 品2, 品3} \},60 筆是 {品2, 品4}\{ \text{品2, 品4} \},40 筆是 {品1, 品2, 品3, 品5}\{ \text{品1, 品2, 品3, 品5} \},20 筆是 {品1, 品4, 品5}\{ \text{品1, 品4, 品5} \}。請用條件機率算出,對已經買 {品5}\{ \text{品5} \} 的顧客,該推銷哪一樣其它商品的機會最大?

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

本題考查離散機率論(Discrete Probability)中的條件機率(Conditional Probability),同時亦為資料探勘中購物籃分析(Market Basket Analysis)尋找關聯規則置信度(Confidence)的經典應用。

  1. 條件機率定義:
    設 AA 與 BB 為樣本空間中的兩事件,且 P(B)>0P(B) > 0,則在已知事件 BB 發生的條件下,事件 AA 發生的條件機率定義為:
    P(A∣B)=P(A∩B)P(B)=N(A∩B)N(B)P(A \mid B) = \frac{P(A \cap B)}{P(B)} = \frac{N(A \cap B)}{N(B)}
    其中 N(B)N(B) 表示事件 BB 發生的樣本個數,N(A∩B)N(A \cap B) 表示事件 AA 與 BB 同時發生的樣本個數。

  2. 問題轉化:
    題目欲求「對已經購買品5的顧客,推銷哪一種其它商品的機會最大」。在統計與機率學上,即求使條件機率 P(品x∣品5)P(\text{品}x \mid \text{品5}) 達到最大值的商品 x∈{1,2,3,4}x \in \{1, 2, 3, 4\}。


解題方法

步驟一:分類購物記錄資料
總購物筆數 Ntotal=80+60+40+20=200N_{total} = 80 + 60 + 40 + 20 = 200 筆。各類購物記錄如下:

  • T1={品1, 品2, 品3}T_1 = \{ \text{品1, 品2, 品3} \}: 80 筆
  • T2={品2, 品4}T_2 = \{ \text{品2, 品4} \}: 60 筆
  • T3={品1, 品2, 品3, 品5}T_3 = \{ \text{品1, 品2, 品3, 品5} \}: 40 筆
  • T4={品1, 品4, 品5}T_4 = \{ \text{品1, 品4, 品5} \}: 20 筆

步驟二:計算購買「品5」的總筆數 N(品5)N(\text{品5})
包含「品5」的購物記錄僅有 T3T_3 與 T4T_4:
N(品5)=N(T3)+N(T4)=40+20=60 筆N(\text{品5}) = N(T_3) + N(T_4) = 40 + 20 = 60 \text{ 筆}

步驟三:分別計算各商品在「買品5」前提下的條件機率

  1. 品1:
    同時包含「品1」與「品5」的記錄為 T3T_3 與 T4T_4:
    N(品1∩品5)=N(T3)+N(T4)=40+20=60 筆N(\text{品1} \cap \text{品5}) = N(T_3) + N(T_4) = 40 + 20 = 60 \text{ 筆}
    條件機率為:
    P(品1∣品5)=N(品1∩品5)N(品5)=6060=1(100%)P(\text{品1} \mid \text{品5}) = \frac{N(\text{品1} \cap \text{品5})}{N(\text{品5})} = \frac{60}{60} = 1 \quad (100\%)

  2. 品2:
    同時包含「品2」與「品5」的記錄僅有 T3T_3:
    N(品2∩品5)=N(T3)=40 筆N(\text{品2} \cap \text{品5}) = N(T_3) = 40 \text{ 筆}
    條件機率為:
    P(品2∣品5)=N(品2∩品5)N(品5)=4060=23≈0.6667(66.67%)P(\text{品2} \mid \text{品5}) = \frac{N(\text{品2} \cap \text{品5})}{N(\text{品5})} = \frac{40}{60} = \frac{2}{3} \approx 0.6667 \quad (66.67\%)

  3. 品3:
    同時包含「品3」與「品5」的記錄僅有 T3T_3:
    N(品3∩品5)=N(T3)=40 筆N(\text{品3} \cap \text{品5}) = N(T_3) = 40 \text{ 筆}
    條件機率為:

🔒

後續完整解題步驟與【答案】

免費註冊,享三天全站完整詳解閱覽。

免費註冊

第 5 題10 分

承上題。請用子集合關係算出,哪兩樣商品一起合售促銷的機會最大?

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

在離散數學中,**集合論(Set Theory)**的子集合關係是用於衡量事件關聯性與連帶銷售(Cross-selling)強度的數學基礎。

  1. 交易集合定義:
    設全集 UU 為所有顧客交易紀錄之集合。對於任意商品 xx,定義 Sx⊆US_x \subseteq U 為「購買商品 xx 的顧客交易集合」。
  2. 商品合售之子集合關係:
    兩商品 xx 與 yy 的共同購買顧客人數對應至集合的交集(Intersection) Sx∩SyS_x \cap S_y。
    若要評估將商品 xx 與 yy 一起合售促銷的機會,即衡量購買其中一商品的顧客同時購買另一商品的強度,數學上可由**單向包含度(Inclusion Degree / Confidence)與雙向重疊強度(Jaccard 相似度)**進行判斷:
    • 單向包含度(置信度):
      Conf(x→y)=∣Sx∩Sy∣∣Sx∣\text{Conf}(x \to y) = \frac{|S_x \cap S_y|}{|S_x|}
      當 Sx⊆SyS_x \subseteq S_y 時,Conf(x→y)=1\text{Conf}(x \to y) = 1(即 100% 購買商品 xx 的顧客皆購買商品 yy),代表 SxS_x 完全包含於 SyS_y 中,子集合包含關係最強。
    • 雙向重疊強度(Jaccard 相似度):
      J(Sx,Sy)=∣Sx∩Sy∣∣Sx∪Sy∣J(S_x, S_y) = \frac{|S_x \cap S_y|}{|S_x \cup S_y|}
      數值越接近 11,代表兩商品的購買族群重疊度越高,合售促銷效果最佳。

解題方法

本題延續前題,缺少的條件為前題給定的各商品顧客購買交易紀錄集合;在假設前題給定商品 A,B,C,DA, B, C, D 的顧客交易集合分別為 SA={1,2,3,4,5}S_A = \{1, 2, 3, 4, 5\}、SB={1,2,3,4,5,6}S_B = \{1, 2, 3, 4, 5, 6\}、SC={1,2,7,8}S_C = \{1, 2, 7, 8\} 與 SD={9,10}S_D = \{9, 10\} 下進行推導與計算。

解題推導步驟如下:

  1. 計算各商品交易集合之基數(Cardinality):

    • ∣SA∣=5|S_A| = 5
    • ∣SB∣=6|S_B| = 6
    • ∣SC∣=4|S_C| = 4
    • ∣SD∣=2|S_D| = 2
  2. 檢視商品組合之子集合與交集關係:
    針對所有可能合售的商品對 {x,y}\{x, y\},求出交集 Sx∩SyS_x \cap S_y、聯集 Sx∪SyS_x \cup S_y,並計算包含度與 Jaccard 相似度。

  3. 比較包含關係與重疊度:
    找出滿足子集合包含關係(即 Sx⊆SyS_x \subseteq S_y)且重疊比例最高之商品對,該組合即為合售促銷機會最大者。


選項分析

針對各商品組合對逐一進行深入分析與比較:

  • 組合 (A) 商品 AA 與商品 BB:
    • 交集計算:SA∩SB={1,2,3,4,5}∩{1,2,3,4,5,6}={1,2,3,4,5}=SAS_A \cap S_B = \{1, 2, 3, 4, 5\} \cap \{1, 2, 3, 4, 5, 6\} = \{1, 2, 3, 4, 5\} = S_A。
    • 子集合關係:因為 SA∩SB=SAS_A \cap S_B = S_A,故成立子集合關係 SA⊆SBS_A \subseteq S_B。
    • 包含度與相似度:
      Conf(A→B)=∣SA∩SB∣∣SA∣=55=1 (100%)\text{Conf}(A \to B) = \frac{|S_A \cap S_B|}{|S_A|} = \frac{5}{5} = 1\ (100\%)
🔒

後續完整解題步驟與【答案】

免費註冊,享三天全站完整詳解閱覽。

免費註冊

第 6 題15 分

購物記錄中商品的相關性,可以表示成 graph。試以 graph 舉例+說明:
(a) 何謂 Hamilton cycle?
(b) 何謂 strongly connected graph?
(c) 何謂 bi-connected graph?

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

本題考驗圖論(Graph Theory)的基本定義,並結合真實巨量資料分析(購物車分析、推薦系統)進行建模應用。主要涵蓋以下觀念:

  1. 購物記錄圖模型(Shopping Record Graph Modeling):
    • 頂點集合 VV:代表購物記錄中的各項商品。
    • 邊集合 EE:代表商品之間的關聯性。
      • 無向邊 {u,v}\{u, v\}:代表商品 uu 與商品 vv 經常在同一張訂單中被同時購買。
      • 有向邊 (u,v)(u, v):代表購買商品 uu 後,接著購買商品 vv 的順序推薦關聯。
  2. 漢米爾頓迴圈(Hamilton cycle):圖中通過所有頂點恰好一次且回到起點的閉合路徑。
  3. 強連通圖(Strongly connected graph):針對有向圖,任意兩頂點之間皆存在雙向的可達有向路徑。
  4. 雙連通圖(Bi-connected graph / 重連通圖):針對無向圖,連通且不含任何關節點(Articulation point / Cut-vertex),即移除任意單一頂點後圖形仍保持連通。

解題方法

解題切入點為先建立「商品關聯圖」的符號表達體系,再針對三個子題分別提供:

  1. 形式化數學定義
  2. 實際購物情境實務說明
  3. 具體圖形範例(明確給出頂點集 VV 與邊集 EE 並驗證)

選項與子題分析

(a) Hamilton cycle(漢米爾頓迴圈)

  • 數學定義:
    在圖形 G=(V,E)G = (V, E) 中,若存在一個閉合迴圈(Cycle)C=(v1,v2,…,vn,v1)C = (v_1, v_2, \dots, v_n, v_1),滿足頂點集合 V={v1,v2,…,vn}V = \{v_1, v_2, \dots, v_n\} 中的每一個頂點恰好出現一次,則稱此迴圈為 Hamilton cycle。
  • 購物情境說明:
    在商品關聯圖中,Hamilton cycle 代表一條「全商品關聯環狀路徑」。推薦系統可以從某商品出發,依據商品間的強關聯性,不重複地遍歷商城內的所有商品,最後順暢地回到初始商品,形成完整閉環。
  • 圖形舉例:
    • 設無向圖 G=(V,E)G = (V, E),頂點代表商品:
      V={A,B,C,D}(A:麵包,B:奶油,C:牛奶,D:咖啡)V = \{A, B, C, D\} \quad (A:\text{麵包}, B:\text{奶油}, C:\text{牛奶}, D:\text{咖啡})
    • 關聯邊集:
      E={{A,B},{B,C},{C,D},{D,A}}E = \{\{A, B\}, \{B, C\}, \{C, D\}, \{D, A\}\}
    • 驗證:路徑 A→B→C→D→AA \to B \to C \to D \to A 經過了所有頂點集合 VV 中的元素恰好一次,最終回到起點 AA,故此圖包含一個 Hamilton cycle。

(b) Strongly connected graph(強連通圖)

  • 數學定義:
    設 G=(V,E)G = (V, E) 為一個有向圖(Directed Graph)。若對於圖中任意兩相異頂點 u,v∈Vu, v \in V,都存在一條從 uu 到 vv 的有向路徑(Directed path),且亦存在一條從 vv 到 uu 的有向路徑,則稱 GG 為 Strongly connected graph。
  • 購物情境說明:
    在商品順序購買導引圖中,有向邊 (u,v)(u, v) 代表「購買 uu 後會被引導購買 vv」。若此圖為強連通圖,代表從任意商品出發,都能透過一系列的推薦鏈到達系統內的任何其他商品,不存在無法抵達的「死角商品」。
  • 圖形舉例:
    • 設有向圖 G=(V,E)G = (V, E),頂點代表商品:
      V={A,B,C}(A:手機,B:保護貼,C:手機殼)V = \{A, B, C\} \quad (A:\text{手機}, B:\text{保護貼}, C:\text{手機殼})
    • 購買引導邊集:
🔒

後續完整解題步驟與【答案】

免費註冊,享三天全站完整詳解閱覽。

免費註冊

第 7 題10 分

求 x+y+z/2=100x+y+z/2 = 100 的解中,x>12x>12, 12>y>812>y>8, z>8z>8 的整數解個數。

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

  1. 整數封閉性與奇偶性約束(Parity Constraint):
    在不定方程 x+y+z2=100x + y + \frac{z}{2} = 100 中,由於 x,yx, y 均為整數且右式 100100 亦為整數,故分數項 z2=100−x−y\frac{z}{2} = 100 - x - y 必須為整數。這意味著 zz 必然為偶整數。
  2. 重複組合(Combination with Repetition / Multiset Coefficient):
    若求 nn 個變數之和等於常數 mm 的非負整數解個數(即 x1+x2+⋯+xn=mx_1 + x_2 + \cdots + x_n = m,且 xi≥0x_i \ge 0),公式為:
    Hmn=H(n,m)=(n+m−1m)=(n+m−1n−1)H_m^n = H(n, m) = \binom{n+m-1}{m} = \binom{n+m-1}{n-1}

解題方法

步驟一:確立變數的精確範圍與約束

  • x>12x > 12 且 x∈Z  ⟹  x≥13x \in \mathbb{Z} \implies x \ge 13。
  • 12>y>812 > y > 8 且 y∈Z  ⟹  y∈{9,10,11}y \in \mathbb{Z} \implies y \in \{9, 10, 11\}。
  • z>8z > 8 且 zz 為偶整數   ⟹  z∈{10,12,14,… }\implies z \in \{10, 12, 14, \dots\}。

步驟二:變數代換簡化方程
設 z=2kz = 2k,其中 kk 為整數。
由 z≥10z \ge 10 可得 2k≥10  ⟹  k≥52k \ge 10 \implies k \ge 5。
將 z=2kz = 2k 代入原方程 x+y+z2=100x + y + \frac{z}{2} = 100,簡化為:
x+y+k=100x + y + k = 100

步驟三:轉換為非負整數變數
定義平移變數:

  • x′=x−13≥0  ⟹  x=x′+13x' = x - 13 \ge 0 \implies x = x' + 13
  • k′=k−5≥0  ⟹  k=k′+5k' = k - 5 \ge 0 \implies k = k' + 5

將 x,kx, k 代入方程:
(x′+13)+y+(k′+5)=100(x' + 13) + y + (k' + 5) = 100
x′+k′=82−yx' + k' = 82 - y
其中 x′,k′x', k' 均為非負整數。

步驟四:依 yy 之可能取值進行分類討論

  1. 當 y=9y = 9 時:
    x′+k′=82−9=73x' + k' = 82 - 9 = 73
🔒

後續完整解題步驟與【答案】

免費註冊,享三天全站完整詳解閱覽。

免費註冊

第 8 題10 分

請用 C/C++/Java 寫一程式:輸入一字串表示字元集合,輸出此字元集合之冪集合。
(提示:字串 "abc" 表示字元集合 {a, b, c})

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

  1. 冪集合(Power Set)定義
    對任意集合 SS,由 SS 之所有子集(Subsets)所組成的集合稱為 SS 的冪集合,記作 P(S)\mathcal{P}(S) 或 2S2^S:
    P(S)={A∣A⊆S}\mathcal{P}(S) = \{ A \mid A \subseteq S \}

  2. 集合勢(Cardinality)與二項式定理
    若原集合 SS 含有 nn 個互異元素(即 ∣S∣=n|S| = n),則其冪集合的元素個數(即子集總數)為:
    ∣P(S)∣=2n|\mathcal{P}(S)| = 2^n
    此性質源於二項式定理:從 nn 個元素中分別選取 0,1,2,…,n0, 1, 2, \dots, n 個元素的組合數總和為 ∑k=0n(nk)=(1+1)n=2n\sum_{k=0}^{n} \binom{n}{k} = (1+1)^n = 2^n。

  3. 位元映射(Bitmask Mapping)與雙射(Bijection)
    大小為 nn 的集合中,每個元素在子集中僅有「選取(11)」或「不選取(00)」兩種決策。因此,每個子集皆可一對一映射至一個長度為 nn 的二進位數。整數範圍介於 00 至 2n−12^n - 1 之間的 2n2^n 個二進位狀態,與 P(S)\mathcal{P}(S) 中的每一個子集形成雙射關係。


解題方法

本題要求編寫程式輸入字元集合字串並輸出其冪集合。最優且最精簡的實作策略為位元遮罩法(Bitmask Approach)。

演算法邏輯與推導步驟

  1. 去重與初始化:集合內的元素具備「互異性」,輸入字串若包含重複字元應先進行去重處理解析出基底集合 SS,設其長度為 nn。
  2. 生成二進位狀態:利用迴圈讓整數變數 ii 從 00 遞增至 2n−12^n - 1(即 (1 << n) - 1)。
  3. 檢查位元與輸出:對於每個狀態 ii,遍歷其第 jj 個位元(0≤j<n0 \le j < n):
    • 若位元運算 (i >> j) & 1 為 11,代表子集包含第 jj 個字元 S[j]S[j]。
    • 若為 00,則代表不包含。
  4. 構造對應子集:印出該狀態所代表的子集內容,即可不重不漏地輸出完整冪集合。

完整程式碼實作(以 C++ 寫作)

🔒

後續完整解題步驟與【答案】

免費註冊,享三天全站完整詳解閱覽。

免費註冊

其他考古題