使用Horner法则计算多项式的值
2013-10-24 08:58
357 查看
计算Pn(x) = an * x^n + an-1 * x^(n-1) + ... + a1 * x + a0
直接计算,需要做的乘法次数 1+2+3+……+n = n(1+n)/2 = O(n2)
使用Horner规则,Pn(x) = ((... ((anx + an-1)x + an-2)x + ... + a2)x + a1)x + a0
需要做的乘法次数 n = O(n)
Java
直接计算,需要做的乘法次数 1+2+3+……+n = n(1+n)/2 = O(n2)
使用Horner规则,Pn(x) = ((... ((anx + an-1)x + an-2)x + ... + a2)x + a1)x + a0
需要做的乘法次数 n = O(n)
public class Horner{ public static int compute(int x, int[] A){ //计算Pn(x) = an * x^n + an-1 * x^(n-1) + ... + a1 * x + a0 int result = A[A.length-1]; for(int i = A.length-2; i >= 0; i --){ result = x*result + A[i]; } return result; } public static void main(String[] args){ //单元测试。取 ai = 2^n-i;n为10。答案应为1024 * 11 = 11264 int x = 2; final int N = 10; int[] A = new int[N+1]; int tmp = 1024; for(int i = 0; i < A.length; i ++){ A[i] = tmp; tmp /= 2; } System.out.println(compute(x, A)); } }
Java
相关文章推荐
- 多项式计算的Horner法则(秦九韶法则)
- 多项式计算的Horner 方法
- 算法学习三:使用霍纳规则计算多项式
- 两个多项式相乘 使用散列表加速 在计算时合并多项式的项
- 多项式计算的Horner 方法
- 单链表的使用——计算多项式加法
- 多项式计算的Horner 方法
- 求幂运算、多项式乘法及Horner法则的应用
- 快速计算多项式:霍纳法则(Horner's rule)
- 使用分治算法提高多项式计算效率:
- Weiss-(DSAA - in C,2.10)Horner法则求多项式
- 使用单链表实现多项式计算示例
- Python使用scipy进行多项式计算与符号计算
- 编写任意精度整数运行包。要使用类似于多项式运算的方法。计算在2^4000内数字0到9的分布
- 计算多项式--Horner
- 计算多项式的值(秦九昭算法,clock()函数的使用)
- 18-OC中NSDate的使用(转换时间,计算时间差,获取时间的每一部分)
- spark【例子】同类合并、计算(主要使用groupByKey)
- C# 使用TimeSpan计算两个时间差
- (使用排序算法进行编程7.3.11)POJ 1007 DNA Sorting(使用冒泡排序算法来计算逆序对)