多项式: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. 利用Bandwidth Splitter限制带宽
  2. python进程池调用实例方法_Python进程池Pool应用实例分析
  3. LVS、Nginx、HAproxy有什么区别?工作中你怎么选择?
  4. 永磁交流伺服电机的工作原理与更换新编码器后的常规零位校正方法
  5. WordPress 博客文章时间格式the_time()设置
  6. 在Python中使用OpenCV裁剪图像
  7. linux elf文件格式
  8. Mr.J--初识Ajax
  9. The tough time set
  10. 2022手机号段大全、归属运营商整理—2022.01.04更新(包含三大运营商)
  11. android studio adb 连接mumu 模拟器
  12. c语言第五章答案许合利,C语言习题答案贾宗璞许合利较全-.doc
  13. 【优化算法】改进的侏儒猫鼬优化算法(IDMO)【含Matlab源码 2314期】
  14. vbnet 直线 弧形在autoCad中的画法
  15. 【第九篇】商城系统-商城首页功能
  16. 如何将图片格式转换为ico格式
  17. 晶莹剔透的泪珠不停地悄然滑
  18. 【图像处理算法常用数据集】整理第二弹
  19. 艾美捷测序级 II,纯化胰蛋白酶化验程序文献参考
  20. 全球及中国TNFα抑制剂行业竞争调查分析及项目可行性研究报告2021-2027年

热门文章

  1. 各式结构化数据 动态 接入-存储-查询 的处理办法 (第二部分)
  2. 后端开发语言基础介绍与比较
  3. 神通数据库学习笔记001
  4. ClientToScreen( )和ScreenToClient( )区别
  5. java file 相对路径 根目录修改_java中使用相对路径读取文件的写法总结 ,以及getResourceAsStream() (转)...
  6. Django实战教程: 开发餐厅在线点评网站(1)
  7. S7-300 400 PLC 系统软件冗余调试的常见问题
  8. 上网行为管理软件如何实现“用户”和“终端”可视可控?
  9. 1型错误和2型错误_W.1 仿真错误定位:gjob exits with status * ?
  10. 从莉莉丝游戏的战略布局与设计角度,探究《剑与远征》的火爆原因