递归示例汇总(Excel函数集团)

2024-6-27更新

阶乘

1
=LAMBDA(x,IF(x<=2,x,x*rct(x-1)))

使用Lambda定义x

当x小于等2时,返回x,以此作为开关。(假设x为正整数,按阶乘的规则,1和2的阶乘结果都是其自身)

假设x为3,第一次运行If的否则结果,x与其前一个值相乘,结果为6;第二次运行If的是则结果,运行结束。

假设x为4,第一次运行If的否则结果,x与其前一个值相乘,结果为12;第二次运行If的否则结果,此时的x为第一次运行的结果即12,乘以前一个x值2,结果为24;第三次运行触及开关。

以此类推……

斐波那契数列

1
=LAMBDA(x,IF(x<=2,1,fs(x-1)+fs(x-2)))

使用Lambda定义x

当x小于等2时,返回1,以此作为开关。

假设x为3,If的否则结果,x的前一个与其前前一个相加,前一个即x为2时的结果1,前前一个即x为1时的结果1,两者相加为2。

假设x为4,If的否则结果,x的前一个与其前前一个相加,结果为多少是未知的,前一个即x为3时的结果2,前前一个即x为2时的结果1,两者相加为3。

以此类推……

青蛙跳台阶

1
=LAMBDA(x,IF(x<=2,x,frog(x-1)+frog(x-2)))

好吧这就是个变种的斐波那契数列……差异在If的第二参数。

一只青蛙积极向上到第N层台阶,本来人家是一阶一阶地爬,后来又觉得自己的美腿这么有力为嘛不两阶一跳?那么到N层的时候,一共有多少种跳爬法?

N=1的时候,就只能爬;N=2的时候,可以一阶一阶爬,也可以一口气蹦上去,有两种方法。

那么第七层呢?

爬上一层以后就剩下六层了,那就是跳爬到六层一共有多少种;

跳上一层以后就剩下五层了,那就是跳爬到五层一共有多少种。

这两个得加一加才能算是七层的吧?

弄清楚这个关系以后,函数公式也就不用解释了。

反转字符串

1
=LAMBDA(x,IF(x<1,"",MID(B5,x,1)&rvs(x-1)))

 

如果x是5,则返回Mid(B5,5,1),也就是B5单元格里最后一个,连接前一个运算的结果;

前一个运算是x为4的时候,即返回Mid(B5,4,1)的结果;

以此类推。

当x运行到小于1的时候,返回空文本,开关起作用,结束运算。

设置自定义名称时,需要注意相对引用。

各位数累加

1
=LAMBDA(x,IF(x<1,,MID('5'!B5,x,1)+nsum(x-1)))

这和上面的例子差不多的意思…… 

展开编号

不借助自定义名称实现递归  

指定数字以内的所有排列组合  

 

未完待续

 

posted @   熬肥妖  阅读(136)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· DeepSeek 解答了困扰我五年的技术问题。时代确实变了!
· 本地部署DeepSeek后,没有好看的交互界面怎么行!
· 趁着过年的时候手搓了一个低代码框架
· 推荐一个DeepSeek 大模型的免费 API 项目!兼容OpenAI接口!
历史上的今天:
2020-11-08 调配资源(Project)
2020-11-08 删除…Remove…(Power Query 之 M 语言)
2020-11-08 选择…Select…(Power Query 之 M 语言)
点击右上角即可分享
微信分享提示