查看原文
其他

如何向一个4岁的孩子解释递归

pipi pipi的奇思妙想 2021-10-19

美版知乎Quora上有一个有趣的问题,如何向一个四岁的孩子解释递归。

 

一、一个比较高赞的回答


洋葱是内部带有洋葱的洋葱皮。

 

二、一些不太恰当却形象的图片解释




三、有个比较有意思的回答,解释得比较好


电影院里,有人问你你坐在第几排,你懒得数,于是你问坐在你前一排的人他坐在第几排,这样在他回答的排数上加1你就可以知道你坐在第几排了。坐在你前一排的人也懒得数,于是就继续去问坐在他前一排的人相同的问题,这样一直下去直到问到坐在第一排的老哥,第一排的老哥当然会告诉你他坐在第一排。于是这个消息会从第一排开始一排一排再传回到你这里,当然每个接受到这个消息的人会在这个结果上加1再把结果传给后排的人,于是你就可以得到你在第几排啦~~


例子解析:

1.坐在第几排的问题,可以转化问题为:在我前面有多少人+1;

2.这个比喻形象地说明了递归对于堆栈的调用,一层层压入堆栈(从提问者的位置到第1排的位置)以及弹出堆栈(从第1排到算出提问者排数)的过程。


下面是pipi做的一个小视频,模拟了这个过程:



万水千山总是情,点个 “在看” 行不行~~

: . Video Mini Program Like ,轻点两下取消赞 Wow ,轻点两下取消在看

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存