TA的每日心情 | 开心 2021-3-12 23:18 |
---|
签到天数: 2 天 [LV.1]初来乍到
|
秦九韶算法是中国南宋时期的数学家秦九韶提出的一种多项式简化算法。在西方被称作霍纳算法。
秦九韶算法:
秦九韶算法是一种将一元n次多项式的求值问题转化为n个一次式的算法。其大大简化了计算过程,即使在现代,利用计算机解决多项式的求值问题时,秦九韶算法依然是最优的算法。

一般地,一元n次多项式的求值需要经过[n(n+2)]/2次乘法和n次加法,而从上面的演算可以看出秦九韶算法只需要n次乘法和n次加法。极大地降低了算法复杂度。
- /**
- * 秦九绍算法求一元n次多项式的值
- * f(x) = a[0]*x^n + a[1]*x^(n-1) + ... + a[n]
- * @param a 系数
- * @param x 基数
- * @return
- */
- double qinjiushao(double [] a ,double x) {
- double v = a[0];
- for (int i = 1; i < a.length; i++) {
- v = v * x + a[i];
- }
- return v;
- }
复制代码

这种将求一个n次多项式f(x)的值转化成求n个一次多项式的值的方法,称为秦九韶算法。
把求一个n次多项式的值转化为求n个一次多项式的值,通过这种转化,把运算的次数减少为做n次乘法和n次加法,大大提高了运算效率 |
|