zoukankan      html  css  js  c++  java
  • 差分法在二元一次多项式中的应用

    人- vs - 计算机

    ax2+bx+c=0

    人:直接用规则。

    x=2a分之负b加减根号b的平方减4ac。

    计算机:一个数一个数的代入,只要等号成立那么就找到x的解。方法笨但是简单,计算量也大。

    差分法:

    n  n2          alpha(一阶差分)      bata(二阶差分)

    0  0

    1  1          1

    2  4          3(=4-1)        2(=3-1)

    3  9(=4+3+2)     5(=9-4)        2(=5-3)  

    4  16          7            2

    alpha(n)=n2-(n-1)2

    bata(n)=alpha(n)-alpha(n-1)

    n2=(n-1)2+alpha(n-1)+bata(n-1)

    ---------------------------------------------------------------------------------------------------

    同理:x2+2x+4=t

    n  t          alpha(一阶差分)      bata(二阶差分)

    0  4

    1  7           3

    2  12          5            2

    3  19          7            2

    4  28          9            2

    alpha(n)=n2-(n-1)2

    bata(n)=alpha(n)-alpha(n-1)

    t[n]=(n-1)2+alpha(n-1)+bata(n-1)

    只要有了红色部分的数据就可以求出所有要求的数据:

    n,t[],alpha[],bata[]

    t[0]=4,t[1]=7,t[2]=12

    alpha[0]=0,alpha[1]=3

    bata[0]=0,bata[1]=0

    for(n=2 to k)

    {

      alpha[n]=n2-(n-1)2

      bata[n]=alpha[n]-alpha[n-1]

      t[n]=(n-1)2+alpha[n-1]+bata[n-1]

    }

    这样就可以得到所有的t[n];

    ------------------------------------------------------

    如果只求某一个t[k]

    n,t[],alpha[],bata[]

    t1=7,t2=12

    alpha1=3

    bata1=0

    alpha=0

    bata=0

    t=0

    for(n=3 to k)

    {

      alpha=t2-t1;

      bata = alpha-alpha1;

      t=t2+alpha+bata;

      t1=t2;

      t2=t;

      alpha1=alpha;

    }

    cout<<"tk="<<t<<endl;

  • 相关阅读:
    SQL 查询优化
    win10鼠标右键菜单在左边,怎么改回右边
    Ansible 命令
    CSV模块
    Python 常用模块
    Ansible 常用模块
    Ansible 动态配置文件
    Cluster Health
    Elasticsearch Python API
    grok常用表达式
  • 原文地址:https://www.cnblogs.com/beihaidao/p/5671878.html
Copyright © 2011-2022 走看看