递归示例汇总(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))) |
这和上面的例子差不多的意思……
未完待续
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· DeepSeek 解答了困扰我五年的技术问题。时代确实变了!
· 本地部署DeepSeek后,没有好看的交互界面怎么行!
· 趁着过年的时候手搓了一个低代码框架
· 推荐一个DeepSeek 大模型的免费 API 项目!兼容OpenAI接口!
2020-11-08 调配资源(Project)
2020-11-08 删除…Remove…(Power Query 之 M 语言)
2020-11-08 选择…Select…(Power Query 之 M 语言)