110 中華郵政招考營運職 數據分析 邏輯推理及SQL、R語言 考古題詳解
第 第一題 題25 分
甲、乙、丙、丁四人參加象棋比賽,擬由抽籤方式決定對手並進行單淘汰賽(亦即輸一場即被淘汰)。目前已知甲的實力最高,每場勝過其他對手的機率為 ,乙能勝過其他對手的機率為 ,丙、丁兩人實力相當。假設沒有合局,每場比賽皆須分出勝負。而最終獲得冠軍者可獲得 6000 元獎金,亞軍則可獲得 4000 元獎金。請回答下列問題:
(一)假設經抽籤決定的第一輪賽程為甲、乙對打進行淘汰賽,另一邊丙、丁對打進行淘汰賽。兩邊勝者再進行第二輪賽程,也就是進行決賽(冠亞軍賽)。請問由甲與丙對決冠亞軍賽的機率為何?【4 分】
(二)承第(一)小題,第一輪賽程不變,但第二輪甲或丙只有一人進入決賽的機率為何?【4 分】
(三)承第(一)小題,第一輪賽程不變,乙獲得獎金之期望值(亦即統計上預期可獲得之金額)為何?【5 分】
(四)假設甲、乙對打,結局為乙勝出;另一邊丙、丁對打,結局為丁勝出,然後由乙、丁進行冠亞軍決賽,最終丁勝出。此為比賽的一種可能情形的例子。另一個可能情形為甲、丁對打,乙、丙對打,然後甲得冠軍。四人比賽,賽程有非常多種可能情形,請問這場比賽總共會有幾種可能的情形?【6 分】
(五)承第(四)小題,如果參賽選手有八名,則請問這場比賽總共會有幾種可能情形?【6 分】
登入後即可作答並保存紀錄。
核心觀念
本題結合:
- 獨立事件的乘法法則:連續比賽結果的機率,等於各場結果機率相乘。
- 互斥事件的加法法則:不同情況不能同時發生時,總機率為各情況機率相加。
- 期望值:
- 組合計數:計算單淘汰賽的配對方式與每場比賽結果。
以下依題意,甲勝其他選手的機率為 ,乙勝其他選手的機率為 ,丙、丁實力相當,因此丙勝丁的機率為 。
(一)甲與丙對決冠亞軍賽的機率
甲、乙第一輪比賽,甲勝出的機率為:
丙、丁第一輪比賽,丙勝出的機率為:
甲、丙同時晉級,兩事件需同時發生,因此:
【答案】
(二)甲或丙只有一人進入決賽的機率
「甲或丙只有一人進入決賽」包含兩種互斥情況:
-
甲晉級、丙未晉級:
-
甲未晉級、丙晉級:
因此:
【答案】
(三)乙獲得獎金的期望值
乙要獲得獎金,必須先在第一輪擊敗甲,機率為:
乙成為冠軍的條件是:乙先擊敗甲,再於決賽擊敗丙或丁。乙勝過丙、丁的機率均為 ,因此:
乙成為亞軍的條件是:乙先擊敗甲,但在決賽輸給丙或丁。故:
乙的獎金期望值為:
第 第二題 題25 分
請回答下列問題:
(一)假設您有五顆球及一個天平。五顆球編號分別為 1、2、3、4、5。假設現在有一顆球,其重量和其他四顆不同,且已知此球不是 1 號球。請問如何利用天平在兩次(含)之內找出不同重量的球,並確認此球是較其他球輕或是重。【10 分】
(二)假設現在有 12 顆球(編號 1 到 12),且僅知有一顆重量和其他 11 顆不同。請問如何在三次(含)之內找出不同重量的球,並確認此球是較其他球輕或是重?【15 分】
登入後即可作答並保存紀錄。
核心觀念
本題考查「天平三種結果」的邏輯推理:
- 左盤較重。
- 右盤較重。
- 兩盤平衡。
每次秤重都必須同時考慮:
- 異常球的編號。
- 異常球是較重或較輕。
解題關鍵是先利用秤重結果縮小候選範圍,再利用已知正常球作為比較基準,確認異常球的重量方向。
以下假設每次秤重均可清楚判斷左重、右重或平衡,且除異常球外,其餘球重量完全相同。
(一)五顆球,異常球不是 1 號球
解題方法
因為已知 1 號球正常,第一次可設計為:
兩邊各放兩顆球,避免因放置球數不同而影響結果。
第一次秤重結果:平衡
若 與 平衡,則 2、3、4、1 均為正常球,因此異常球必為 5 號球。
第二次秤:
- 5 號球較重:5 號球為異常重球。
- 5 號球較輕:5 號球為異常輕球。
第一次秤重結果:左盤較重
即:
此時異常情形只有三種:
- 2 號球較重。
- 3 號球較重。
- 4 號球較輕。
第二次秤:
判斷如下:
- 若 :2 號球較重。
- 若 :3 號球較重。
- 若 :2、3 正常,故 4 號球較輕。
第一次秤重結果:右盤較重
即:
此時異常情形只有三種:
- 2 號球較輕。
- 3 號球較輕。
- 4 號球較重。
第二次秤:
判斷如下:
- 若 :2 號球較輕。
- 若 :3 號球較輕。
- 若 :2、3 正常,故 4 號球較重。
解題技巧
第一次不要只秤 對 ,因為若平衡,4、5 仍有「較重或較輕」四種可能,單靠一次秤重無法完整判斷。將 1 號正常球加入第一次秤重,可使平衡結果直接鎖定 5 號球。
(二)十二顆球,異常球未知
解題方法
十二顆球共有:
種可能情形,即每一顆球都可能是異常重球或異常輕球。
第一次先分成三組:
第一次秤:
情況一:第一次平衡
若:
則 1 至 8 號球均正常,異常球必在 9 至 12 號球。
第二次秤:
其中 1、2、3 號球確定正常。
第二次左盤較重
表示 9、10、11 號球其中一顆較重。
第三次秤:
- 若 :9 號球較重。
- 若 :10 號球較重。
- 若平衡:11 號球較重。
第二次右盤較重
表示 9、10、11 號球其中一顆較輕。
第三次同樣秤:
- 若 :9 號球較輕。
- 若 :10 號球較輕。
- 若平衡:11 號球較輕。
第 第三題 題25 分
如【圖三】所示之實體關聯模型圖,請回答下列問題。
【圖三】
實體與屬性如下:
Customer:
Order:
OrderItem:
實體關聯模型圖顯示:Customer 與 Order 之間為 對 關係;Order 與 OrderItem 之間的關聯及其基數依原圖所示。
(一)請以 SQL 語法建立圖上的相關資料表。【15 分】
(二)請使用 SQL 語法查詢 為 10 之 Customer 所 Order 的 OrderItem 資料。【10 分】
登入後即可作答並保存紀錄。
核心觀念
本題考查實體關聯模型(ER Model)轉換為關聯式資料表的規則:
- 實體轉換為資料表。
- 實體的屬性轉換為欄位。
- 主鍵(Primary Key)必須能唯一識別資料列。
- 關係中, 端的主鍵要放入 端,作為外來鍵(Foreign Key)。
- 關聯本身若具有屬性,必須將該屬性放入相對應的關聯資料表。
圖中實際顯示:
Customer是實體。OrderItem是實體。Order是兩者之間的關聯,基數為Customer 1 : OrderItem M。OID、ItemID、Quantity屬於OrderItem。ODate、Amount為Order關聯的屬性。
因此,採用「將 關聯合併至 端」的方式,將 CID、ODate、Amount 放入 OrderItem 資料表。
(一)建立資料表
CREATE TABLE Customer (
CID INT PRIMARY KEY,
CName VARCHAR(50) NOT NULL,
Phone VARCHAR(20)
);
Customer 的主鍵為 CID。
CREATE TABLE OrderItem (
OID INT NOT NULL,
ItemID INT NOT NULL,
Quantity INT NOT NULL,
CID INT NOT NULL,
ODate DATE NOT NULL,
Amount DECIMAL(10, 2) NOT NULL,
PRIMARY KEY (OID, ItemID),
FOREIGN KEY (CID)
REFERENCES Customer(CID),
CHECK (Quantity > 0),
CHECK (Amount >= 0)
);
說明:
OID與ItemID組成複合主鍵,表示同一張訂單中的每一項商品。CID為外來鍵,參照Customer(CID)。
第 第四題 題25 分
請以 R 語言完成河內塔函數(函數名稱為 ToH,參數須包含圓盤數量 、開始柱子 from、目標柱子 to、臨時柱子 aux),執行 3 個圓盤搬移的程式,並依程式寫出搬移過程。輸出範例為:
Move disk 1 from rod A to rod C.
【提示】
有三根柱子,A 柱上有 個穿孔圓盤,圓盤大小由下往上逐漸變小。小圓盤上不可疊放大圓盤,圓盤可臨時放在 B 柱,將圓盤逐一移到 C 柱。【25 分】
登入後即可作答並保存紀錄。
核心觀念
本題考查「河內塔」的遞迴設計。將 個圓盤由起始柱 from 搬到目標柱 to,並使用臨時柱 aux,可分成三個步驟:
- 將上方 個圓盤由
from搬到aux。 - 將第 個最大圓盤由
from搬到to。 - 將 個圓盤由
aux搬到to。
其遞迴關係為:
其中 表示搬移 個圓盤所需的最少步數,且:
因此:
當 時,最少搬移次數為:
解題方法
遞迴函數需要設定停止條件:
- 當 時,直接將圓盤由
from搬到to。 - 當 時,依序執行「搬移上層圓盤、搬移最大圓盤、搬移上層圓盤」三個步驟。
三根柱子的角色會隨遞迴呼叫互換:
- 第一次遞迴:
from→aux - 中間搬移:
from→to - 第二次遞迴:
aux→to
R 語言程式
ToH <- function(n, from, to, aux) {
if (n == 1) {
cat("Move disk", n, "from rod", from, "to rod", to, ".\n")
} else {
ToH(n - 1, from, aux, to)
cat("Move disk", n, "from rod", from, "to rod", to, ".\n")
ToH(n - 1, aux, to, from)
}
}
ToH(3, "A", "C", "B")
cat 用於將文字與變數直接輸出;其中 n 代表目前搬移的圓盤編號,from、to、aux 分別代表目前遞迴層級的起始柱、目標柱與臨時柱。
3 個圓盤的搬移過程
執行:
ToH(3, "A", "C", "B")
輸出如下: