免費開始練習
調查局三等申論題 114年 [電子科學組] 計算機概論

第 一 題

📖 題組:
請回答下列有關資料結構及時間複雜度計算的問題: 01 n=int(input()) 02 k=0 03 counter=0 04 for i in range(1, n//2): 05 k=k+1 06 for j in range(1, n, pow(2,k)): 07 counter=counter+1 08 print(counter) PROGRAM-1
📝 此題為申論題,共 2 小題

小題 (一)

請說明堆疊資料結構的定義與特性;並請說明應用堆疊資料結構完成以下程式的方法,程式功能為:將一個十進制的正整數轉換為二進制。(15 分)

思路引導 VIP

看到此題,應立即聯想堆疊的「後進先出 (LIFO)」特性。接著,連結十進制轉二進制的數學原理「除二取餘法」,指出先算出的餘數為低位元需最後輸出,正好完美契合堆疊的存取邏輯,最後輔以具體數值步驟進行實例演示。

🤖
AI 詳解
AI 專屬家教

【破題】 堆疊(Stack)是一種基於「後進先出(LIFO)」原則運作的線性資料結構,其存取特性完美契合十進制轉換二進制時「除二取餘,逆序輸出」的數學演算法邏輯。 【論述】

小題 (二)

執行以下 Python 程式 PROGRAM-1,輸入一個正整數 n,則程式的第 07 行(counter = counter + 1)總共會執行多少次?試寫出其時間複雜度(Time Complexity),以及其詳細的推導過程,並使用 Big-O 符號表示之。(10 分)

思路引導 VIP

面對雙層迴圈的時間複雜度計算,先分別列出外層與內層的執行範圍與變數變化。本題的關鍵在於內圈的步進值呈現等比級數遞增(2^k),因此需利用級數求和公式(Sigma)列出總次數,並結合天花板函數(Ceiling)的數學不等式來推導出精確的上限(Big-O)。

🤖
AI 詳解
AI 專屬家教

【解題思路】利用程式迴圈建立執行次數的級數求和公式(Sigma),並透過等比級數收斂性質與天花板函數(Ceiling Function)的不等式,嚴謹推導出 Big-O 時間複雜度。 【詳解】 已知:條件整理

升級 VIP 解鎖