没找到什么好方法,此处取$x_0=1.3$为初值,用牛顿法
$$x_k=x_{k-1}-\frac{f(x_{k-1})}{f'(x_{k-1})}$$
迭代99次来计算给定多项式的根,并用标准库的decimal包作浮点计算以达到1000位精度。
最终代码有七行。
代码长度:269字节 vs. 全站第一:164字节。
from decimal import*
getcontext().prec=1002
x=Decimal(1.3)
p=[i-48for i in b"*3*<,7)105.,$27<)&,39)0(>-92-&.*1:-17)7$+86:(()-9166.-&.352/////122/./01"]
r=lambda f:sum(j*x**i for i,j in enumerate(f))
exec('x-=r(p)/r([i*p[i]for i in range(1,72)]);'*99)
print(str(x)[:-1])
|