问题 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))
答案不唯一,必定有更加优化的解法欢迎分享