天天看点

Office365新增了lambda函数,据说实现了图灵完备,可以进行函数式编程。现用这个函数尝试实现整数的质因数分解。

作者:雲淡風輕A

Office365新增了lambda函数,据说实现了图灵完备,可以进行函数式编程。现用这个函数尝试实现整数的质因数分解。基本思路如图所示。

1. 在excel中,点击“公式”,然后点击“名称管理器”

2. 在“名称管理器”中点击“新建”,在“新建名称”对话框中的“名称”一栏输入“fenjie”,在“引用位置”栏目中输入以下内容:

=LAMBDA(x,y,IF(x<y,"",IF(MOD(x,y)=0,"*" & y & fenjie(x/y,y), fenjie(x,y+1))))

3. 点击“确定”,然后点击“关闭”

4. 在excel任意单元格中输入“=fenjie(12345,2)”,其中12345是要分解的数,2为要尝试的质因数的初始值,回车,则在当前单元格中显示“*3*5*823”,表示12345的质因数是3、5、823。

如果显示为“#NAME?”请确认office版本为365以及是否输入有误。

有两个疑问不知道如何解决:1. 如何省略第二个参数?2. 当质因数中有较大的质数时显示错误,经分析可能与excel允许的最大递归或迭代次数有关,如何解决这个问题?

欢迎讨论[捂脸]

Office365新增了lambda函数,据说实现了图灵完备,可以进行函数式编程。现用这个函数尝试实现整数的质因数分解。
Office365新增了lambda函数,据说实现了图灵完备,可以进行函数式编程。现用这个函数尝试实现整数的质因数分解。
Office365新增了lambda函数,据说实现了图灵完备,可以进行函数式编程。现用这个函数尝试实现整数的质因数分解。
Office365新增了lambda函数,据说实现了图灵完备,可以进行函数式编程。现用这个函数尝试实现整数的质因数分解。

继续阅读