《盗梦空间》与程序中的递归~~~太强悍啦!与时俱进
作者:有情有义有朋友
看了《盗梦空间》。 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所示:
关于递归调用有很多例子,例如汉罗塔问题等等。
看了《盗梦空间》。 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所示:
0_1289033502Mn3g.png (18.92 KB, 下载次数: 4)
关于递归调用有很多例子,例如汉罗塔问题等等。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论