zoukankan      html  css  js  c++  java
  • 多项式的计算与 Horner 法多项式求值

    //1
    double Poly(double a[], double x, int degree)
    {
            long int i;
            double result = a[0];
            double xpwr = x;
            for(i = 1; i <= degree; ++i){
                    redsult += a[i] * xpwr;
                    xpwr = x * xpwr;
            }  
            return result;
    }
    //Horner's method
    double Polyh(double a[], double x. int degree)
    {
            long int i;
            double result = a[degree];
            for(i = degree - 1; i >= 0; --i){
                    result = a[i] + x * result;
            }
        return result;
    }

    同样的事情, 递归做起来就是比迭代神奇. 从代码上看, 递归有着更少的加法和乘法运算, 所以从效率上说, 递归是比迭代的效率......低的.

    为什么呢? 假设机器猫和火影每一集有相同的信息量, 那么必然火影播一集所需要的时间更长, 为啥呢? 因为火影每集都有冗长的前情回顾, 回忆啊回忆啊就把时间回忆掉了. 一个道理, 每次迭代都是在做做相同的动作, 只是材料不一样了; 而每次递归都要把之前的步骤再来一遍, 所以一开始迭代和递归的效率区别还不明显, 但是当执行得越来越远的时候, 机器猫都把道具亮出来了, 火影还沉浸在回忆里呢.

    以上.

  • 相关阅读:
    创建对象的七种方式
    设计模式之工厂模式
    设计模式之单例模式
    排序算法之插入排序
    排序算法之选择排序
    类及对象初体验
    排序算法之冒泡排序
    迭代器和生成器
    装饰器
    函数进阶
  • 原文地址:https://www.cnblogs.com/wuOverflow/p/4169197.html
Copyright © 2011-2022 走看看