《盗梦空间》与程序中的递归

     梦里不知身是客,一晌贪欢。
                                                —-李煜【浪淘沙】
    今生搭错了车次, 注定不能与你相依,
    一声梦中梦, 我的魂,追你到来世…
                                                 —-某个台湾女诗人    

                            

看了《盗梦空间》。 inception英文名 直译为“成立”的意思。

主人公可以进入你的梦,在梦中改变你的潜意识。这样的最大的危险是分不清哪个是梦境,哪个是现实。

现实中我们经常碰到这样的情况,要自己咬一下自己看会不会疼,或者会不会疼醒。

《盗梦》里面让观众产生混乱的地方就是梦中梦。在自己的梦里还能再做梦。
计算机里也有类似的概念。比如递归就是最典型的应用。

   所谓递归-recursive就是可以在方法里自己调用自己。

以下是一个最简单的递归(当然会是死循环,所以真正的递归不要这样写)

                  public void sayHi(){
                       System.out.println(“Hello!”);
                        sayHi(); //自己调用自己,会无数次的调用
}
以上的这个程序如果你运行的话,最终会StackOverFlow也就是堆栈溢出错误

   真正的递归应用之一:求某个数的阶乘 
                  public int fact(int n){
              
                if(n>0)
                   return n*fact(n-1);
           else
                 return 1;
}

假如参数是4它的调用顺序如下图1所示:


 


关于递归调用有很多例子,例如汉罗塔问题等等。

呵呵By The way ,如果你看不懂盗梦空间,那么就不要去搞软件。

Technorati 标签: atixujie, java, pengzj, 盗梦空间, inception 文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览92536 人正在系统学习中

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2010年10月5日
下一篇 2010年10月5日

相关推荐