Что такое «большой O» следующей функции? Я предполагаю, что это O (log (n)), но я хотел бы перепроверить. Функция просто определяет, является ли ее аргумент степенью числа 2.
def pow_of_2(x):
a = math.log(x, 2)
if a == math.floor(a):
return True
else:
return False
O(1)
, потому что он выполняет фиксированные вычисления, а затем возвращает либоTrue
, либоFalse
. - person Tim Biegeleisen   schedule 19.01.2016pow_of_2(2 ** 1000)
возвращает False. - person Paul Hankin   schedule 19.01.2016x
), и вы выполняете с ней только фиксированное количество операций (независимо от того, какое значение имеет x). - person mgilson   schedule 19.01.2016