霍纳规则(Horner'ruler)算法
多项式:A(x) = a[n]*x^n + a[n-1]*x^(n-1)+...+ a[1]*x^1 + a[0],直接计算时,效率并不高
Horner'ruler规则:A(x) = (...(((a[n]*x + a[n-1])*x + a[n-2])*x + a[n-3])*x+...+ a[1])*x + a[0],使多项式求值所需乘法次数最少
/** 多项式A(x) = a[n]*x^n + a[n-1]*x^(n-1)+...+ a[1]*x^1 + a[0],直接计算时,效率并不高* Horner'ruler规则:A(x) = (...(((a[n]*x + a[n-1])*x + a[n-2])*x + a[n-3])*x+...+ a[1])*x + a[0]* Horner'ruler使多项式求值所需乘法次数最少*/
#include <stdio.h>
//#define DEBUG/** 霍纳规则递归算法* a[n]表示多项式系数,i表示递归参数,x表示多项式在哪点计算其值,n表示多项式最高次数* 注意:系数为0时,也不能省略*/
double horner(float *a, int i, float x, int n)
{double result = 0;if(i > n){return 0;}result = horner(a, i+1, x, n) * x + a[i]; #ifdef DEBUGprintf("res:%f\n", result);#endifreturn result;
}
int main()
{float a[] = {1.70, 0, 2.3, 0.5}; //多项式系数printf("%f\n", horner(a, 0, 2, sizeof(a)/sizeof(a[0]) - 1));return 0;
}
霍纳规则(Horner'ruler)算法相关推荐
- 多项式求解(霍纳规则(Horner Rule))
1.霍纳规则(Horner Rule) 霍纳规则是采用最少的乘法运算策略,求多项式在x处的值,该规则为.利用该规则,可以求任意多项式的在x处的值. 2.实现代码 int horner(int *a, ...
- 算法学习三:使用霍纳规则计算多项式
霍纳规则中的算法思想 在<算法导论>第二章的思考题中,描述了利用霍纳规则计算多项式的方法.以前自己在写程序的时候都是傻傻的简单粗暴地直接上了,看到这个算法的时候眼前一亮,就多看了一些,果然 ...
- java规则计算_java实现的霍纳规则的多项式计算
java实现的霍纳规则的多项式计算 霍纳规则多项式计算如果使用朴素的多项式求值,时间复杂度为O(n*n),而是用了霍纳规则可以使用递归或者迭代来实现,时间复杂度是O(n),下面是源代码: /* * 实 ...
- 霍纳规则(C/C++,Scheme)
一.背景 霍纳(Horner)规则是采用最少的乘法运算策略,来求多项式 A(x)=anxn+an−1xn−1+...+a1x+a0 A(x) = a_n x^n + a_{n-1}x^{n-1} + ...
- java实现的霍纳规则的多项式计算
霍纳规则多项式计算如果使用朴素的多项式求值,时间复杂度为O(n*n),而是用了霍纳规则可以使用递归或者迭代来实现,时间复杂度是O(n),下面是源代码: /* * 实现霍纳规则的多项式计算时间复杂度为O ...
- 霍纳(Horner)规则的两种实现方法
霍纳(Horner)规则是采用最少的乘法运算策略,求多项式A(x)=anxn+an-1xn-1+...+a1x+a0在x0处的值.该规则为A(x0)=(...((anx0+an-1)x0+...+a1 ...
- JavaScript实现hornerMethod霍纳法算法(附完整源码)
JavaScript实现hornerMethod霍纳法算法(附完整源码) hornerMethod.js完整源代码 hornerMethod.js完整源代码 /*** @param {number[] ...
- 霍纳法则(Horner‘s rule)
文章目录 霍纳法则(Horner's rule) 程序设计 程序分析 霍纳法则(Horner's rule) [问题描述] 用霍纳法则求一个多项式在一个给定点的值 [输入形式]输入三行,第一行是一个整 ...
- 利用从左到右二进制幂算法计算二进制的幂(霍纳法则升级版,变治法)
文章目录 题目描述 一.二进制幂的计算 二.题解 1.源代码 2.源程序测试 写在最后 题目描述 7.a.应用从左到右二进制幂算法来计算 a 17 a^{17} a17 本题目来源:<算法设计与 ...
最新文章
- C#编程应用--线程与委托
- Angular2 - Starter - Routes, Route Resolver
- PMcff 020产品经理峰会现场火爆,干货不断
- 如何从Fiori launchpad发出的请求判断出后台是哪个网关系统在响应
- android wifi设备连接通信,通过wifi与设备进行通信(Android)
- CUDA初探—环境配置
- php disable-ipv6,強迫 PHP Curl 使用 IPv4 , 忽略 IPv6
- (转)Google Fonts 的介绍与使用
- C# 访问 带密码的access数据库
- ORACLE 查询表空间使用情况
- mysql如何清空数据库表内容
- 微信公众号怎么发送模板消息 微信公众平台模板消息免费发送的技巧
- 合适新手入门的串口屏学习分享
- Blue Coat 2.8亿美元收购云安全创业企业Elastica
- fastdfs连接mysql_使用fastdfs-zyc监控FastDFS文件系统
- 【读书笔记】计算机是怎样跑起来的 - 读书笔记(2)
- UE5中置人利用iphone驱动虚拟人面部
- 别只会搜日志了,求你懂点原理吧
- 机器学习小组知识点31:重要性采样(Importance Sampling )
- 云服务器及其存储性能测试方法