Python(分治算法)问题 E: 解方程_求方程f(x)=2^x+3^x-4^x=0在[1,2]内的根。

问题 E: 解方程

题目描述

求方程f(x)=2^x+3^x-4^x=0在[1,2]内的根。

输入

输入m(0<=m<=8),控制输出精度

输出

三个实根(根与根之间留有空格)输出方程f(x)=0的根,x的值精确小数点m位

样例输入

3

样例输出

1.507

解答(分治算法):

n = int(input())

def func(x):
    return 0.5 ** x + 0.75 ** x - 1

left = 1
right = 2
middle1 = 1.5
while abs(right - left) > 1e-9 or abs(func(middle1)) > 1e-9:
    if func(middle1) * func(right) < 0:
        left = middle1
    if func(middle1) * func(left) < 0:
        right = middle1
    middle1 = (left + right) / 2
print(round(right, n))

答案不唯一,必定有更加优化的解法欢迎分享

你可能感兴趣的:(Python_算法,数算,分治算法,python)