迭代法(Iterative Method)

2013-05-30

“迭代法”也称“辗转法”是一种不断用变量的旧值递推新值的过程。迭代法又分为精确迭代和近似迭代。

军人在进攻时常采用交替掩护进攻的方式,若在数轴上的点表示A,B两人的位置,规定在前面的数大于后面的数,则是A>B,B>A交替出现。但现在假设军中有一个胆小鬼,同时大家又都很照顾他,每次冲锋都是让他跟在后面,每当前面的人占据一个新的位置,就把位置交给他,然后其他人再往前占领新的位置。也就是A始终在B的前面,A向前迈进,B跟上,A把自己的位置交给B(即执行B = A操作),然后A 再前进占领新的位置,B再跟上……直到占领所有的阵地,前进结束。像这种两个数一前一后逐步向某个位置逼近的方法称之为迭代法。

最常见的迭代法是牛顿法。其他还包括最速下降法、共轭迭代法、变尺度迭代法、最小二乘法、线性规划、非线性规划、单纯型法、惩罚函数法、斜率投影法、遗传算法、模拟退火等等。

1、for循环是一个非常简单的迭代过程。
for(int i= 0;i < n ;i++); 2、一个饲养场引进一只刚出生的新品种兔子,这种兔子从出生的下一个月开始,每月新生一只兔子,新生的兔子也如此繁殖。如果所有的兔子都不死去,问到第 12 个月时,该饲养场共有兔子多少只? 算法: u 1 = 1 , u 2 = u 1 + u 1 × 1 = 2 , u 3 = u 2 + u 2 × 1 = 4 ,…… 3、 验证谷角猜想。日本数学家谷角静夫在研究自然数时发现了一个奇怪现象:对于任意一个自然数 n ,若 n 为偶数,则将其除以 2 ;若 n 为奇数,则将其乘以 3 ,然后再加 1 。如此经过有限次运算后,总可以得到自然数 1 。人们把谷角静夫的这一发现叫做“谷角猜想”。 算法: if n 为偶数 then    n=n/2   else    n=n*3+1   end if 4、斐波那契(Fibonacci)数列的第n项函数fib(n)。 F=0、1、1、2、3....   fib(0)=0;    fib(1)=1;    fib(n)=fib(n-1)+fib(n-2) (当n>1时)。

写成递归算法:
  int fib(int n)
  {
if (n==0) return 0;
   if (n==1) return 1;
   if (n>1) return fib(n-1)+fib(n-2);
  }

分类:编程网络 | 标签: |

相关日志

评论被关闭!