天天看點

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函數,據說實作了圖靈完備,可以進行函數式程式設計。現用這個函數嘗試實作整數的質因數分解。

繼續閱讀