Problem Address:http://cstfs.gdufs.edu.cn:8080/PKU/showproblem?problem_id=1151
一道解一元三次方程的题目。训练时没有做出来。
解题代码过来后看了一下。着实是不知道里面是怎么计算的,但是结果又是对的。
就着那个代码提交了两次还是WA。
在群上吼了一下没人理= =
整个下午也是找了好久的解一元三次方程的方法,不过都不适用于计算机。
于是决定自己写一个。
然后DEBUG了之后居然一次AC。那个兴奋啊。
主要思路:
这道题比较特殊,那就是存在三个不同的解,且每个解之间的差距不小于1.000。
求出导函数。求出导函数的两个解即为中间一个解的范围。然后迭代出中间一个解。
之后向范围的两边分别每次递增1.000。求出左右两边两个解各自的范围。然后再各自迭代求解。
因为这道题有1、必定存在三个不同的解 2、每个解差距大于1.000, 才可以这样做。
如果没有差距这个限制可能就得重新考虑一下。如果存在相同的解那我就……
发现数学蛮难蛮麻烦的……以后可怎么过……
本文介绍了一种特殊的解一元三次方程的方法,利用导数确定根的大致范围,并通过迭代逼近的方式精确求解三个实根。适用于特定条件下的计算机算法实现。

被折叠的 条评论
为什么被折叠?



