LONGEPASS
Q236.

下列之Foo 演算法,那些描述是正確的?電腦軟體設計共同科目 乙級 第 236 題 題目 圖片

電腦軟體設計共同科目 · 乙級 · Q236

難易度分析

3 / 5

本題採取複選形式,要求考生同時掌握演算法的功能分析、時間複雜度推導以及具體的數值計算。由於需要對所有選項進行真偽判定,且涉及對時間複雜度量級的精確掌握,因此增加了解題的複雜度。

正確答案 (複選):②, ③, ④

  • ② 演算法之計算時間為O(n):此演算法使用 while 迴圈執行 y 次乘法運算,因此 時間複雜度為 O(n),其中 n 代表指數 y 的值。每次迴圈執行常數時間的乘法與遞減操作。
  • ③ Foo (4, 6)之結果為4096:Foo(4, 6) 計算結果為 4^6 = 4096。演算法初始化 result=1,經過 6 次迴圈每次乘以 4,最終得到 4096。
  • ④ while 迴圈的敘述之計算時間為O(n):while 迴圈內的敘述包含 result = result * x 與 y = y - 1,這些都是常數時間 O(1) 操作,但迴圈執行 y 次,故整體迴圈區塊的計算時間為 O(n)。

錯誤選項解析

  • ① 演算法之功能為計算電腦軟體設計共同科目 乙級 第 236 題 選項 ① 圖片:此演算法實際功能是計算 x 的 y 次方(x^y),而非其他數學運算。從圖片中的程式碼結構可看出,透過 while 迴圈累乘實現冪運算。
Learning Tip

"此題考點為 遞迴與迭代演算法的時間複雜度分析。常見陷阱是混淆 O(n) 線性時間 與 O(log n) 對數時間——若採用「快速冪演算法」可達 O(log n),但本題為基礎迭代法故為 O(n)。實務上應注意 指數成長函數 的計算特性,以及迴圈次數與輸入參數的對應關係。"

學員答題分佈

①演算法之功能為計算電腦軟體設計共同科目 乙級 第 236 題 選項 ① 圖片0%
②演算法之計算時間為O(n)0%
③Foo (4, 6)之結果為40960%
④while 迴圈的敘述之計算時間為O(n)0%

此答題分佈是根據學員在 LongePass 模擬考等實際作答紀錄計算而成。與考友分享這道歷屆試題與詳細解析!

相似類型題目