Программист для начинающих здесь!
Поэтому я пытаюсь создать функции для тетратации с использованием рекурсивной формулы. Я использую ту же самую функцию tetrate_F
для нахождения n-го супер root некоторого большого числа. В sprRt(a, b)
, когда b
становится слишком маленьким, функция, кажется, замедляется на тонну. Я считаю, что 2
, 3
и 5
работают практически для любого значения a
. Но когда для b
установлено значение 4
или любое другое значение, это просто по какой-то причине занимает слишком много времени.
def tetrate_F(a, b):
if b == 0:
return b+1
else:
res = a ** tetrate_F(a, b-1)
return(res)
def sprRt(a, b):
l_head = []
lt0 = []
if b == 1:
print("Undefined")
elif b > 1:
for j in range(0, a+1):
if tetrate_F(j, b) < a:
lt0.append(j)
elif tetrate_F(j, b) > a:
break
val0 = lt0[-1]
lt0.clear()
l_head.append(val0)
print(val0)
sprRt(1234567890, 4)
Как и в sprRt(1234567890, 2)
, я могу использовать 2
, 3
или даже 5
для b
и получите результат почти сразу, но не любое другое число.
Помощь будет высоко оценена, спасибо!