我们如何在python中计算a,b,c a^17+b^17=c^17,a和b值介于100和10000之间的a^17+b^17和c^17之间的最小相对误差?你知道吗
amin,bmin=100,100
minerr=1.
for a in range(100,10001):
for b in range(a+1,10001):
c17=a**17+b**17
sqc17=int(pow(c17,1./17.))
err=float(abs(c17-sqc17**17))/float(sqc17)
if err<minerr:
minerr=err
amin,bmin=a,b
print(amin,bmin,minerr)
我的解决方案是坏的,因为低精度的浮动 我怎样才能改进这个
对于
a<b
和c=b+k
可以它告诉我们
a
的有效选择大约在(17*k/b)^(1/17)*b
左右,这将合理的a
的选择减少了17倍。从而将循环更改为跑得比较快,有输出
相关问题 更多 >
编程相关推荐