У меня есть функция, которая находит показатель степени, но я не совсем понимаю сложность функции.
Функция:
def expo(number, exponent):
if exponent == 0:
return 1
elif exponent % 2 == 0:
val = expo(number, exponent / 2)
return val * val
else:
return number * expo(number, exponent - 1)
Я пытался вычислить иНарисуйте график числа расчетов по экспоненте и получите такой результат: График: Экспонент: Расчеты:
1: 2, 2: 3, 3: 4, 4: 4, 5: 5, 6: 5, 7: 6, 8: 5, 9: 6, 10: 6, 11: 7, 12: 6, 13:7, 14: 7, 15: 8, 16: 6, 17: 7, 18: 7, 19: 8, 20: 7, 21: 8, 22: 8, 23: 9, 24: 7, 25: 8,26: 8, 27: 9, 28: 8, 29: 9, 30: 9
Как вы видите, число вычислений колеблется, я думаю, что запись Big-O не будет линейной или квадратичной. Я думаю, что это будет как многочлен многократной степени с представлением как
Я прав или у меня просто неправильное представление о н (н) нотации