Эта функция, по-видимому, монотонно увеличивается, поэтому двоичный поиск можно применять так же, как для квадрата root.
В вашей функции n
была цель, теперь она равна 0 и n
- это параметр.
Обратите внимание, что эта функция имеет нулевое отрицательное значение, поэтому не забывайте расширять область поиска.
n = int(input())
def binarySearch(n):
# n is the parameter
l = -10
r = 10
while abs(l - r) > 10**(-5):
mid = (l + r) / 2
# Compute the value of the function and compare against 0.0
if (n**mid + mid) > 0.0:
r = mid
else:
l = mid
return round(mid, 4)
print('%.4f' % binarySearch(n))