3
以下功能的「大O」是什麼?我的假設是它是O(log(n)),但我想仔細檢查。該函數簡單地確定其參數是否是2的冪。該功能的2功能的「大O」
def pow_of_2(x):
a = math.log(x, 2)
if a == math.floor(a):
return True
else:
return False
以下功能的「大O」是什麼?我的假設是它是O(log(n)),但我想仔細檢查。該函數簡單地確定其參數是否是2的冪。該功能的2功能的「大O」
def pow_of_2(x):
a = math.log(x, 2)
if a == math.floor(a):
return True
else:
return False
這似乎是'O(1)',因爲它執行了一個固定的計算,然後返回'True'或'False'。 –
但不是計算基於x的變量@TimBiegeleisen – user3121369
該函數是O(log(x))(因爲將x轉換爲double是O(log x)),但也會產生大x的錯誤結果。例如,'pow_of_2(2 ** 1000)'返回False。 –