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;

  • 相关阅读:
    mysql标准写法及其他常见问题
    java动态代理_aop2
    java动态代理_aop
    oracle11g exp导出问题:部分表导不出来
    决策树算法学习笔记
    阿里云九折优惠码
    标准差(Standard Deviation) 和 标准误差(Standard Error)
    Pipeline 与 xargs
    【Linux运维-集群技术进阶】Nginx+Keepalived+Tomcat搭建高可用/负载均衡/动静分离的Webserver集群
    求最大连续和——dp
  • 原文地址:https://www.cnblogs.com/beihaidao/p/5671878.html
Copyright © 2011-2022 走看看