多项式: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)算法相关推荐

  1. 多项式求解(霍纳规则(Horner Rule))

    1.霍纳规则(Horner Rule) 霍纳规则是采用最少的乘法运算策略,求多项式在x处的值,该规则为.利用该规则,可以求任意多项式的在x处的值. 2.实现代码 int horner(int *a, ...

  2. 算法学习三:使用霍纳规则计算多项式

    霍纳规则中的算法思想 在<算法导论>第二章的思考题中,描述了利用霍纳规则计算多项式的方法.以前自己在写程序的时候都是傻傻的简单粗暴地直接上了,看到这个算法的时候眼前一亮,就多看了一些,果然 ...

  3. java规则计算_java实现的霍纳规则的多项式计算

    java实现的霍纳规则的多项式计算 霍纳规则多项式计算如果使用朴素的多项式求值,时间复杂度为O(n*n),而是用了霍纳规则可以使用递归或者迭代来实现,时间复杂度是O(n),下面是源代码: /* * 实 ...

  4. 霍纳规则(C/C++,Scheme)

    一.背景 霍纳(Horner)规则是采用最少的乘法运算策略,来求多项式 A(x)=anxn+an−1xn−1+...+a1x+a0 A(x) = a_n x^n + a_{n-1}x^{n-1} + ...

  5. java实现的霍纳规则的多项式计算

    霍纳规则多项式计算如果使用朴素的多项式求值,时间复杂度为O(n*n),而是用了霍纳规则可以使用递归或者迭代来实现,时间复杂度是O(n),下面是源代码: /* * 实现霍纳规则的多项式计算时间复杂度为O ...

  6. 霍纳(Horner)规则的两种实现方法

    霍纳(Horner)规则是采用最少的乘法运算策略,求多项式A(x)=anxn+an-1xn-1+...+a1x+a0在x0处的值.该规则为A(x0)=(...((anx0+an-1)x0+...+a1 ...

  7. JavaScript实现hornerMethod霍纳法算法(附完整源码)

    JavaScript实现hornerMethod霍纳法算法(附完整源码) hornerMethod.js完整源代码 hornerMethod.js完整源代码 /*** @param {number[] ...

  8. 霍纳法则(Horner‘s rule)

    文章目录 霍纳法则(Horner's rule) 程序设计 程序分析 霍纳法则(Horner's rule) [问题描述] 用霍纳法则求一个多项式在一个给定点的值 [输入形式]输入三行,第一行是一个整 ...

  9. 利用从左到右二进制幂算法计算二进制的幂(霍纳法则升级版,变治法)

    文章目录 题目描述 一.二进制幂的计算 二.题解 1.源代码 2.源程序测试 写在最后 题目描述 7.a.应用从左到右二进制幂算法来计算 a 17 a^{17} a17 本题目来源:<算法设计与 ...

最新文章

  1. C#编程应用--线程与委托
  2. Angular2 - Starter - Routes, Route Resolver
  3. PMcff 020产品经理峰会现场火爆,干货不断
  4. 如何从Fiori launchpad发出的请求判断出后台是哪个网关系统在响应
  5. android wifi设备连接通信,通过wifi与设备进行通信(Android)
  6. CUDA初探—环境配置
  7. php disable-ipv6,強迫 PHP Curl 使用 IPv4 , 忽略 IPv6
  8. (转)Google Fonts 的介绍与使用
  9. C# 访问 带密码的access数据库
  10. ORACLE 查询表空间使用情况
  11. mysql如何清空数据库表内容
  12. 微信公众号怎么发送模板消息 微信公众平台模板消息免费发送的技巧
  13. 合适新手入门的串口屏学习分享
  14. Blue Coat 2.8亿美元收购云安全创业企业Elastica
  15. fastdfs连接mysql_使用fastdfs-zyc监控FastDFS文件系统
  16. 【读书笔记】计算机是怎样跑起来的 - 读书笔记(2)
  17. UE5中置人利用iphone驱动虚拟人面部
  18. 别只会搜日志了,求你懂点原理吧
  19. 机器学习小组知识点31:重要性采样(Importance Sampling )
  20. 云服务器及其存储性能测试方法

热门文章

  1. 提升游戏陪玩源码请求响应速度,应从哪方面下手?
  2. 软件测试(3) UFT12使用_GUITest
  3. 视频号冠名崔健演唱会太野了4600万观看
  4. 简单的手机记事本app怎么查看提醒列表?
  5. Maven 跨项目调用persistence.xml动态配置文件
  6. twisted 笔记
  7. 利用Python查看微信好友撤回的消息
  8. Java技术图谱!java程序员面试题苹果瓣
  9. openfire日志配置
  10. npm gyp ERR问题