【BUG还是某种限制?】【lambda+LET公式】WPS17133测试存在

【2024年7月25日更新】

由于这里不好分享公式,所以我在"语雀"笔记软件上面进行分享了一下,有兴趣的可以看看能不能正常访问.我也是测试一下能否浏览,并且我会在上面持续更新这个问题的一些进展,研究的速度不快,龟速更新.下面是链接:

https://www.yuque.com/themath404/wps-lambda/rbzfgks4errmouhc?singleDoc# 《关于lambda+LET函数递归调用BUG问题探索》

【问题简述】

关于lambda+LET涉及内部反复递归调用返回#N/A的问题

不知道是性能限制导致的递归次数受到某种限制,还是底层代码有问题,还是其它什么原因.


【公式1】 有问题的公式如下

=LAMBDA( x,

LET(

forC,  LAMBDA( x,IF(x <= 0, x, x + forC(x-1) )),

forB,  LAMBDA( x,IF(x <= 0, x, x + forB(x-1) + forC(x) )),

forA,  LAMBDA( x,

   IF(x <= 0, x, x + forA(x-1) + forB(x) + forC(x) )

),

forA(x)

)

)(10)

以上公式返回#N/A,但是没道理啊,没有逻辑问题吧?


【公式2】 做如下改动以后,可以正常返回值

=LAMBDA( x,

LET(

forC,  LAMBDA( x,IF(x <= 0, x, x + forC(x-1) )),

forB,  LAMBDA( x,IF(x <= 0, x, x + forB(x-1) )),

forA,  LAMBDA( x,

   IF(x <= 0, x, x + forA(x-1) + forB(x) + forC(x) )

),

forA(x)

)

)(10)

以上公式返回值 495


【问题梳理】 

forA,forB,forC是三个递归公式,都有递归

公式1:forA递归调用forB,forC,并且forB内部递归调用了forC,出问题

公式2:forA递归调用forB,forC,但forB内部递归调用forC,正常

所以,公式1问题在哪里呢?真实导致NA的原因是什么???

如果是限制递归次数保证性能什么的,还希望工程师写在API或者文档显眼位置,因为最近做数据分析,高级功能需要涉及各种递归,很需要复杂递归.


【电脑】

广西
浏览 237
收藏
3
分享
3 +1
2
+1
全部评论 2
 
聂道强
聂道强

@金山办公

感谢反馈
· 广东省
回复
 
清华学弟任泽岩
清华学弟任泽岩

创作者俱乐部成员

厉害了,兰布达探索者
· 中国
回复