zoukankan      html  css  js  c++  java
  • ackerman递归

    定义:

                   n+1        n=0

    A(m,n)={A(m-1,1) m=0

                   A(m-1,A(m,n-1)) n>0,m>0

     1 #include <iostream>
     2 #include<iomanip>
     3 using namespace std;
     4 int ack(int m,int n)
     5 {
     6     if(m==0)
     7         return n+1;
     8     else if(n==0)
     9         return ack(m-1,1);
    10     else
    11         return ack(m-1,ack(m,n-1));
    12 }
    13 int main()
    14 {
    15     for(int i=0;i<4;i++)
    16     for(int j=0;j<10;j++){
    17         cout<<setw(5)<<ack(i,j)<<' ';
    18         if((j+1)%10==0)cout<<endl;
    19     }
    20 
    21 }
    View Code

    第一行:A(0,0)-A(0,9)

    第二行:A(1,0)-A(1,9)

    第三行:A(2,0)-A(2,9)

    第四行:A(3,0)-A(3,9)

    A(0,n)=n+1

    A(1,n)=A(0,A(1,n-1)=A(1,n-1)+1=...=A(1,0)+n=A(0,1)+n=n+2

    A(2,n)=A(1,A(2,n-1))=A(2,n-1)+2=A(1,A(2,n-2))+2=A(2,n-2)+2+2=...=A(2,0)+2n=A(1,1)+2n=2n+3

    A(3,n)=A(2,A(3,n-1))=2A(3,n-1)+3即xn=2xn-1+3 化为 xn+3=2(xn-1+3) 用等比数列可求得xn=x02n A(3,0)+3=A(2,1)+3=8 即x0=8所以:

    A(3,n)=8*2n-3=2n+3-3

    感觉递归还是挺难的

  • 相关阅读:
    数据放在服务端和客户端的利与弊
    python异步I/O并发
    view
    mysql千万或者上亿的数据怎么设计数据库
    Django(一)
    JQuery
    BOM与DOM
    JavaScript
    CSS(二)
    CSS介绍
  • 原文地址:https://www.cnblogs.com/george-cw/p/3587918.html
Copyright © 2011-2022 走看看