Homework 14-2 = ###### tags: `Course - Algorithmics` ## 1 因為子程序可以在多項式時間完成,所以假設執行時間為$n^k$(k為常數),執行c次需要$cn^k$的時間(c也是常數),最後還要做一些也是多項是時間的工作,假設執行時間為$n^l$(l為常數)。 總耗時是$cn^k+n^l<n^m$(必定可以找到常數m),所以還是多項式時間。 ## 2 舉例,一個簡單的線性時間函式,被呼叫線性時間次: (Dynamic Scoping is Enabled) ```python= def my_function(): for i from i to n: print(i) n = n * 2 input n k = n for i from 1 to k: my_function() ``` my_function()被執行了n次,且my_function()的執行時間是n,但是每當my_function()執行結束時,n就會加倍,所以總耗時非$n^2$而是$n\times2^n$,已經是指數時間了。