111 高普考高考三級 電力工程 計算機概論 考古題詳解

111 年・高普考・高考三級・電力工程
試題代碼 計算機概論

第 一 題20 分

(一) 請將十進位的 14.62514.625 轉換成二進位。(5 分)

(二) 請將十進位的負整數 −179-179 轉成 16-bit 的二補數(2’s complement)的二進位整數。(5 分)

(三) 下列整數都是以十六進位方式表示的 16-bit 二補數整數,請計算 (712A)16+(9E00)16(712A)_{16}+(9E00)_{16} 的結果,並以十六進位方式表示其結果。(5 分)

(四) 下列整數是 8-bit 的二補數整數,那幾個式子計算結果是整數溢位(overflow)?並請說明之。(5 分)

(i) 11000010+0011111111000010+00111111

(ii) 00000010+0011111100000010+00111111

(iii) 11000010+1111111111000010+11111111

(iv) 10000010+1000000010000010+10000000

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

這一題的完整詳解

核心觀念

十進位實數轉換為二進位時,必須將「整數部分」與「小數部分」分開處理:

  1. 整數部分:採用連除法(除以 2 取餘數),由下而上(由最後一個商數至第一個餘數)排列,作為二進位整數的高位元至低位元。
  2. 小數部分:採用連乘法(乘以 2 取整數),由上而下依序取出每次相乘後產生的整數部分,直至小數部分為 0 或達到指定精度。

解題方法

  1. 整數部分 (14)10(14)_{10} 轉二進位: 14÷2=7⋯⋯餘 0(最低位元 LSB)14 \div 2 = 7 \cdots\cdots \text{餘 } 0 \quad (\text{最低位元 LSB}) 7÷2=3⋯⋯餘 17 \div 2 = 3 \cdots\cdots \text{餘 } 1 3÷2=1⋯⋯餘 13 \div 2 = 1 \cdots\cdots \text{餘 } 1 1÷2=0⋯⋯餘 1(最高位元 MSB)1 \div 2 = 0 \cdots\cdots \text{餘 } 1 \quad (\text{最高位元 MSB}) 由下往上讀取,得到 (14)10=(1110)2(14)_{10} = (1110)_2。

  2. 小數部分 (0.625)10(0.625)_{10} 轉二進位: 0.625×2=1.25⋯⋯取出整數 10.625 \times 2 = 1.25 \cdots\cdots \text{取出整數 } 1 0.25×2=0.5⋯⋯取出整數 00.25 \times 2 = 0.5 \cdots\cdots \text{取出整數 } 0 0.5×2=1.0⋯⋯取出整數 10.5 \times 2 = 1.0 \cdots\cdots \text{取出整數 } 1 由上往下讀取,得到 (0.625)10=(0.101)2(0.625)_{10} = (0.101)_2。

  3. 合併整數與小數部分: (14.625)10=(1110.101)2(14.625)_{10} = (1110.101)_2

解題技巧

  • 快速權重展開法(逆算驗算): 1110.1012=1×23+1×22+1×21+0×20+1×2−1+0×2−2+1×2−31110.101_2 = 1 \times 2^3 + 1 \times 2^2 + 1 \times 2^1 + 0 \times 2^0 + 1 \times 2^{-1} + 0 \times 2^{-2} + 1 \times 2^{-3} =8+4+2+0.5+0.125=14.625= 8 + 4 + 2 + 0.5 + 0.125 = 14.625 小數點後第一、二、三位的權重分別固定為 0.50.5、0.250.25、0.1250.125。觀察 0.625=0.5+0.125=2−1+2−30.625 = 0.5 + 0.125 = 2^{-1} + 2^{-3},即可心算得出小數部分為 .101.101。

【答案】 (1110.101)2(1110.101)_2


(二) 十進位負整數 −179-179 轉成 16-bit 二補數(2's complement)

核心觀念

二補數(2's Complement)為現代計算機最常用的有號數表示法。求負數之二補數步驟如下:

  1. 先求該數之絕對值(正整數)的二進位表示。
  2. 將其擴展至指定位元長度(本題為 16-bit,前方補 0)。
  3. 取該二進位字串的二補數:即「一補數加 1」(位元反轉後加 1),或「自最低位(右端)往高位(左端)掃描,遇見第一個 1 之前與該 1 本身保持不變,其餘高位元全數反轉」。

解題方法

  1. 求 +179+179 之二進位表示: 179=128+32+16+2+1=27+25+24+21+20179 = 128 + 32 + 16 + 2 + 1 = 2^7 + 2^5 + 2^4 + 2^1 + 2^0 因此 (179)10=(10110011)2(179)_{10} = (10110011)_2。

  2. 擴展為 16-bit 正整數: (+179)10=(0000 0000 1011 0011)2(+179)_{10} = (0000\ 0000\ 1011\ 0011)_2

  3. 轉換為二補數:

  • 步驟 A(求一補數,即各 bit 0 與 1 互換): 1111 1111 0100 11001111\ 1111\ 0100\ 1100
  • 步驟 B(加 1 得到二補數):
& 1111\ 1111\ 0100\ 1100 \\ + & 0000\ 0000\ 0000\ 0001 \\ \hline & 1111\ 1111\ 0100\ 1101 \end{array}$$ #### 解題技巧 * **模數互補法(快速驗算)**: $N$ 位元二補數系統的模數為 $2^N$。求 $-X$ 即求 $2^N - X$: $$2^{16} - 179 = 65536 - 179 = 65357$$ 轉為十六進位:$65357 = (\text{FF4D})_{16}$。 再將 $(\text{FF4D})_{16}$ 展開為二進位: $$\text{F} \to 1111, \quad \text{F} \to 1111, \quad 4 \to 0100, \quad \text{D} \to 1101$$ 得 $1111\ 1111\ 0100\ 1101$,精準且不易出錯。 --- 【答案】 $(1111111101001101)_2$(或寫為 $1111\ 1111\ 0100\ 1101_2$) --- ### (三) 計算 16-bit 二補數十六進位整數 $(712A)_{16} + (9E00)_{16}$ #### 核心觀念 1. 在二補數系統中,加法器不論運算元是正數還是負數,均直接依二進位(或對應的十六進位)進行標準算術加法。 2. 運算結果若產生超出該系統規範位元數(本題為 16-bit,即十六進位 4 位數)的高位進位(Carry out),應直接捨棄(Discard),僅保留低 16 位元作為運算結果。 #### 解題方法 依十六進位由最低位(第 0 位)逐位相加: $$\begin{array}{r@{\quad}l} & 712\text{A}_{16} \\ + & 9\text{E}00_{16} \\ \hline \end{array}$$ * **第 0 位(最右位)**:$\text{A}_{16} + 0_{16} = 10 + 0 = 10 = \text{A}_{16}$,無進位。 * **第 1 位**:$2_{16} + 0_{16} = 2_{16}$,無進位。 * **第 2 位**:$1_{16} + \text{E}_{16} = 1 + 14 = 15 = \text{F}_{16}$,無進位。 * **第 3 位(最高位)**:$7_{16} + 9_{16} = 16 = (10)_{16}$,本位寫 $0$,產生向第 4 位的進位 $1$。 加法暫存器之完整結果為 $(10\text{F}2\text{A})_{16}$。 因題目指定為 **16-bit 整數**(4 個十六進位數),超出 16 位元的最高進位 $1$ 溢出暫存器外部而被捨棄,最終儲存結果為 $(0\text{F}2\text{A})_{16}$。
🔒

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

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

免費註冊

第 二 題20 分

寫一個演算法,輸入資料為有 kk 個整數值 N1,N2,…,NkN_1,N_2,\ldots,N_k 的陣列 NN,以及一個特別的值 SUMSUM。這個演算法找出陣列 NN 裡的一對整數,其加總的和剛好等於 SUMSUM,並把這一對整數列印出來;如果都沒有這樣的一對整數,則列印出「抱歉,找不到」。(20 分)

例如:陣列 NN 裡的數值為 3、8、13、2、17、18、103、8、13、2、17、18、10。

且如果:

(i) SUMSUM 的值是 2020,則你的演算法要印出:(2、18) 或 (3、17)。

(ii) SUMSUM 的值是 2929,則你的演算法要印出:抱歉,找不到。

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

這一題的完整詳解

核心觀念

本題評量經典的「兩數之和」(Two-Sum Problem),為資料結構與演算法的核心題型。其主要測驗重點包括:

  1. 陣列(Array)與搜尋演算法:如何在大小為 kk 的整數陣列中,有效率地檢索出滿足條件 Ni+Nj=SUMN_i + N_j = SUM(其中 i≠ji \neq j)的數對。
  2. 演算法時間與空間複雜度(Time and Space Complexity):
  • 暴力搜尋法(Brute Force):雙層迴圈尋找每一對組合,時間複雜度為 O(k2)O(k^2),空間複雜度為 O(1)O(1)。
  • 排序配合雙指標法(Sorting with Two Pointers):先進行排序(如快速排序或合併排序),再利用雙端向內夾擠,時間複雜度為 O(klog⁡k)O(k \log k),空間複雜度為 O(1)O(1) 或 O(k)O(k)。
  • 雜湊表法(Hash Table / Hash Set):以空間換取時間,單次走訪查詢餘額,時間複雜度為 O(k)O(k),空間複雜度為 O(k)O(k)。

解題方法

在國家考試中,手寫演算法以「排序配合雙指標法(Two-Pointer Method)」最為嚴謹且具代表性,能在不依賴外部進階資料結構庫(如 Hash Table 碰撞處理)的前提下,達到 O(klog⁡k)O(k \log k) 的時間複雜度與 O(1)O(1) 的輔助空間複雜度。

演算法邏輯步驟

  1. 輸入與前處理:
  • 輸入包含 kk 個整數的陣列 NN 與目標值 SUMSUM。
  • 若 k<2k < 2,直接印出「抱歉,找不到」並結束。
  • 將陣列 NN 由小到大遞增排序(Ascending Sort),排序後設陣列索引為 11 至 kk。
  1. 雙指標初始化:
  • 設定左指標 left=1left = 1(指向最小值)。
  • 設定右指標 right=kright = k(指向最大值)。
  • 設定旗標變數 found=falsefound = \text{false}。
  1. 雙向夾擠檢索:
  • 當 left<rightleft < right 時,計算當前和: current_sum=N[left]+N[right]current\_sum = N[left] + N[right]
  • 判斷情況:
  • 若 current_sum=SUMcurrent\_sum = SUM:印出 (N[left],N[right])(N[left], N[right]),將 foundfound 設為 true\text{true},並中斷迴圈結束演算法。
  • 若 current_sum<SUMcurrent\_sum < SUM:表示總和不足,將左指標右移(left←left+1left \leftarrow left + 1),以增加數值。
  • 若 current_sum>SUMcurrent\_sum > SUM:表示總和過大,將右指標左移(right←right−1right \leftarrow right - 1),以減少數值。
  1. 輸出判斷:
  • 若迴圈終止時 foundfound 仍為 false\text{false},則印出「抱歉,找不到」。

選項分析

本題為非選擇題(演算法設計申論題),無選項可作分析。針對本題三種常見解法之優缺點進行比較分析:

  1. 暴力搜尋法(Brute Force):
  • 作法:使用兩層巢狀迴圈檢查所有 k(k−1)2\frac{k(k-1)}{2} 種數對組合。
  • 分析:邏輯最簡單,但不具備演算法效率優化,時間複雜度達 O(k2)O(k^2)。若資料量 kk 龐大時效能極差,於高普考評分標準中難以取得滿分。
  1. 排序配合雙指標法(Two Pointers)(本解法採用):
  • 作法:先對陣列進行最佳化排序(如快速排序或堆積排序,耗時 O(klog⁡k)O(k \log k)),再以雙指標由兩端線性掃描(耗時 O(k)O(k))。
🔒

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

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

免費註冊

第 三 題20 分

假設在時間 00 的時候,行程(process)P1、P2、P3、P4、P5P_1、P_2、P_3、P_4、P_5 依序進來系統。其需要的 CPU 處理時間(burst time)和優先權(priority)的資訊如下表:

ProcessBurst timepriority
P1P_1103
P2P_211
P3P_323
P4P_414
P5P_552

分別使用 FCFS、SJF、nonpreemptive priority(數字小代表優先權高)、RR(quantum 為 1)的排程演算法,詳細畫出甘特圖(Gantt chart)表示執行這些行程所需時間。每單位時間執行哪個行程必須標示清楚。

🖼️ 本題原卷含圖表。基於試題來源之版權考量,本站不轉載原卷影像; 題目文字已完整轉錄,圖表請自行參閱考選部公告之試題原檔。

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

這一題的完整詳解

核心觀念

本題考查四種 CPU 排程演算法的執行順序與甘特圖表示:

  • FCFS(先到先服務):依進入系統的先後順序執行。
  • SJF(短工作優先):每次選擇 CPU 執行時間最短的行程;本題未標示搶先,因此採非搶先方式。
  • Nonpreemptive priority(非搶先優先權):選擇優先權最高的行程執行至完成。本題數字越小,優先權越高。
  • RR(Round Robin,循環輪替):每個行程最多執行一個時間片;時間片用完仍未完成,就排到就緒佇列尾端。本題時間片 q=1q=1。

所有行程都在時間 00 到達。當行程的 burst time 或優先權相同時,依題目給定的進入順序 P1、P2、P3、P4、P5P_1、P_2、P_3、P_4、P_5 排定先後。

解題方法與甘特圖

每種演算法都依其規則決定執行順序,再將各行程的 burst time 累加,標出每段工作的起訖時間。

一、FCFS

依到達順序執行:P1、P2、P3、P4、P5P_1、P_2、P_3、P_4、P_5。

P1⏟0–10∣P2⏟10–11∣P3⏟11–13∣P4⏟13–14∣P5⏟14–19\underbrace{P_1}_{0\text{–}10} \mid \underbrace{P_2}_{10\text{–}11} \mid \underbrace{P_3}_{11\text{–}13} \mid \underbrace{P_4}_{13\text{–}14} \mid \underbrace{P_5}_{14\text{–}19}

時間刻度:0、10、11、13、14、190、10、11、13、14、19。

二、SJF

依 burst time 由短至長排列。P2P_2 與 P4P_4 的 burst time 都是 11,依到達順序先執行 P2P_2;其後依序為 P4、P3、P5、P1P_4、P_3、P_5、P_1。

P2⏟0–1∣P4⏟1–2∣P3⏟2–4∣P5⏟4–9∣P1⏟9–19\underbrace{P_2}_{0\text{–}1} \mid \underbrace{P_4}_{1\text{–}2} \mid \underbrace{P_3}_{2\text{–}4} \mid \underbrace{P_5}_{4\text{–}9} \mid \underbrace{P_1}_{9\text{–}19}

時間刻度:0、1、2、4、9、190、1、2、4、9、19。

三、Nonpreemptive priority

優先權數字越小,優先權越高。依優先權由高至低為 P2、P5、P1、P3、P4P_2、P_5、P_1、P_3、P_4。P1P_1 與 P3P_3 的優先權同為 33,依到達順序先執行 P1P_1。

🔒

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

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

免費註冊

第 四 題20 分

(一) 志銘跟春嬌是很好的朋友,有邀約的話一定會欣然赴約。現在志銘想要跟春嬌約會,因為沒有網路,所以用傳統寫信的方式,寄給春嬌跟她約定約會的時間與地點。但因為傳統寄信的方式,可能因為某些因素,信件沒有送達或延遲很久時間才送達。

那麼請問志銘如果按照他定的時間地點準時赴約,春嬌一定會去嗎?會或不會,都請解釋原因。(10 分)

(二) 那如果春嬌收到信後,回確認信給志銘說會準時赴約,那請問春嬌按約定時間到達約會地點時,她能確定志銘一定會在那邊嗎?會或不會,都請解釋原因。(5 分)

(三) 承上述,那如果志銘有收到春嬌的確認信後,再回信說:「讚,我一定會去的。」請問這次,兩個人都會確定對方一定會準時到現場赴約嗎?請分析各種可能性。(5 分)

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

這一題的完整詳解

核心觀念

本題的核心觀念為分散式系統與電腦網路通訊中的經典理論——兩軍問題(Two Generals' Problem),以及不可靠傳輸媒介上的共識問題(Consensus Problem)與三向交握(Three-Way Handshake)原理。

  1. 不可靠通訊通道(Unreliable Channel): 在傳統郵件或無連接網路中,通訊鏈路具備「封包遺失(Packet Loss)」與「傳輸延遲(Transmission Delay)」的不確定性。
  2. 共同知識(Common Knowledge)與共識極限: 電腦科學已嚴格證明:在不可靠的通訊環境中,任何有限次數(Finite Steps)的訊息交換,都無法達成 100%100\% 確定性的共識。 最後一個發送確認訊息的一方,永遠無法得知該確認訊息是否成功送達對方手中,進而引發「無限確認遞迴(Infinite Acknowledgment Loop)」。

解題方法

將題目中的「傳統寄信」映射為計算機網路的「不可靠傳輸協定」,「赴約」映射為「分散式節點的狀態提交(State Commit / Agreement)」。

解題切入點為邊界狀態分析法(Worst-Case Analysis):題目問的是「一定會」或「能確定」(即 100%100\% 的確定性保證)。因此,只要能推導出任何一種因通訊失敗(遺失或延遲)而導致雙方認知脫節的情境,即可判定「無法確定」或「不會一定去」。


各小題詳細解析

(一) 志銘按照定的時間地點準時赴約,春嬌一定會去嗎?

  • 分析: 此情況等同於網路中的「單向傳輸(One-Way Transmission)」,志銘發送請求後即單方面執行動作。 由於傳統寄信屬於不可靠傳輸,可能面臨以下兩種不可抗力因素:
  1. 信件遺失:春嬌自始至終皆未收到信件。
  2. 信件延遲過久:信件在約會時間過後才送達。

在上述兩種情況下,春嬌完全不知悉約會時間與地點。雖然春嬌具備「有邀約一定欣然赴約」的前提,但因未接收到有效訊息,根本不可能出現在約定地點。

  • 結論:春嬌不會一定去(即不一定會去)。

(二) 春嬌回確認信後,按約定時間到達時,能確定志銘一定會在那邊嗎?

  • 分析: 此情況等同於「雙向交握(Two-Way Handshake)」,即志銘發送請求(SYN),春嬌發送確認(ACK)。 春嬌雖然成功寄出確認信,但春嬌所處的狀態面臨資訊不對稱:
  1. 春嬌的確認信同樣可能在郵寄過程中遺失或延遲送達。
  2. 春嬌寄出確認信後,無法得知志銘是否確實收到該回信。
  3. 若志銘未收到春嬌的確認信,志銘可能認為「春嬌未收到原始邀請」或「春嬌不打算赴約」,進而取消赴約行程。

因此,春嬌到達現場時,無法排除志銘因未收到確認信而缺席的可能性。

  • 結論:春嬌不能確定志銘一定會在那邊。

(三) 志銘收到確認信後再回信「讚,我一定會去的」,兩個人都會確定對方一定會準時到現場赴約嗎?

🔒

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

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

免費註冊

第 五 題20 分

假設我們使用多表置換密碼(polyalphabetic ciphers)機制來加密資料。這個機制需有個密鑰串(key stream)K=(K1,K2,K3,…)K=(K_1,K_2,K_3,\ldots),將我們的明文(Plaintext)P=P1P2P3⋯P=P_1P_2P_3\cdots 的每個字母,依序加上 key 值,轉換成新的字母,變成密文(Ciphertext)C=C1C2C3⋯C=C_1C_2C_3\cdots。

也就是:

加密機制為 Ci=(Pi+Ki)mod  26C_i=(P_i+K_i)\mod 26

解密機制為 Pi=(Ci−Ki)mod  26P_i=(C_i-K_i)\mod 26

其中,英文字母與數字的轉換如下表,並以 modulo 26 來計算(除以 26 的餘數)。

Plaintextabcdefghijklmnopqrstuvwxyz
CiphertextABCDEFGHIJKLMNOPQRSTUVWXYZ
Value0001020304050607080910111213141516171819202122232425

假設我們使用的密鑰串為:12、00、19、19、00、02、10、08、18、1912、00、19、19、00、02、10、08、18、19。

那麼收到的密文是 EUVVEUCNME。

請問原來的明文是什麼?

🖼️ 本題原卷含圖表。基於試題來源之版權考量,本站不轉載原卷影像; 題目文字已完整轉錄,圖表請自行參閱考選部公告之試題原檔。

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

這一題的完整詳解

核心觀念

本題考多表置換密碼的解密。依題目規則,英文字母以 A=0, B=1,…,Z=25A=0,\ B=1,\ldots,Z=25 編碼,並使用公式:

Pi=(Ci−Ki) mod 26P_i=(C_i-K_i)\bmod 26

若相減結果為負數,加上 2626 後再換回字母。

解題方法

將密文逐字轉成數值,依序減去對應的密鑰值,再對 2626 取餘數:

位置密文 CiC_i密文值密鑰 KiK_i(Ci−Ki) mod 26(C_i-K_i)\bmod 26明文
1E412(4−12) mod 26=18(4-12)\bmod 26=18S
2U2000(20−0) mod 26=20(20-0)\bmod 26=20U
3V2119(21−19) mod 26=2(21-19)\bmod 26=2C
4V2119(21−19) mod 26=2(21-19)\bmod 26=2C
🔒

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

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

免費註冊

其他考古題

111 年高普考高考三級・其他類科的《計算機概論》