| 网站首页 | 文章中心 | 电子书下载 | 矢量图库 | 视频教程 | 素材下载 | 程序代码下载 | JS代码 | 论坛 | 
常用软件类:
|杀毒安全 |联络聊天 |网络软件 |多媒体类 |系统工具 |图形图像 |系统工具 |应用软件 |行业软件
开发设计类:
|动画制作 |图像处理 |3D设计 |操作系统 |站长学院 |网络相关 |WEB设计 |数据库类 |程序开发
C语言算法——顺推法
作者:未知    文章来源:网络    点击数:    更新时间:2006-8-14
      S4=(...........)=S3[i-1]=S2[i-2];
    .......................
    S4[N]=(...........)=S3[N-1]=S2[N-2];
  依此类推,我们可以发现一个有趣的式子:
    AN=PN-i+2*Ai+QN-i+2*D+RN-i+2*Ai-1, 即
    Ai=(AN-QN-i+2*D-RN-i+2*Ai-1)/PN-i+2
  我们从已知量A1和AN出发,依据上述公式顺序递推A2、A3、...、AM.由于PN-i+2递减,因此最后得出的AM要比第一种算法趋于精确。
程序代码如下:
program ND1P4;
const
  maxn   =60;
var
  n,m,i   :integer;
  d     :real;
  list   :array[1..maxn] of real;     {list-------对应ai}
  s     :array[1..maxn,1..3] of real;   {s[i,1]--------对应Pi}
                              {s[i,2]--------对应Qi}
                              {s[i,3]--------对应Ri}
procedure init;
  begin
    write(’n m d =’);
    readln(n,m,d);         {输入项数,输出项序号和常数}
    write(’a1 a’,n,’=’);
    readln(list[1],list[n]);   {输入a1和an}
  end;   {init}
procedure solve;
  begin
    s[1,1]:=0;s[1,2]:=0;s[1,3]:=1;   {求递推边界(P1,Q1,R1)和(P2,Q2,R2)}
    s[2,1]:=1;s[2,2]:=0;s[2,3]:=0;   {根据公式Pi〈---Pi-2 - 2*Pi-1}
                          {Qi〈---Qi-2 - 2*Qi-1}
                          {Ri〈---Ri-2 - 2*Ri-1}
                          {递推(P3,Q3,R3)......Pn,Qn,Rn)}
    for i:=3 to n do
        begin
          s[i,1]:=s[i-2,1]-2*s[i-1,1];
          s[i,2]:=s[i-2,2]-2*s[i-1,2]+2;
          s[i,3]:=s[i-2,3]-2*s[i-1,3];
        end; {for}

上一页  [1] [2] [3] 下一页


  • 上一篇文章: 没有了

  • 下一篇文章:
  • 相关文章