roblox lua中的阶乘不支持小数

您想达到什么目标? 我想要制作一个阶乘函数

问题是什么? 我无法找到任何解决小数阶乘的方法,除非它们是整数

到目前为止,您尝试了哪些解决方案? 我在Roblox Devforum、YouTube、Google和Discord上查找,但我真的找不到任何方法来使小数能够正确地支持阶乘

我唯一知道的是,您可以使用Gamma函数来解决小数阶乘,但我正在寻找解决Luau中如何实现它的方法,所以我真的很困难 我甚至使用了Stirling的逼近方法,但它并不完全符合实际答案

本地函数SolveFactorial(FN)
    如果string.match(FN,“ ^-”)then
        本地T = 1
        FN * = -1
        对于i = FN,1-1 do
            T = T * i
        结束
        T * = -1
        返回T
    其他
        本地T = 1
        对于i = FN,1-1 do
            T = T * i
        结束
        返回T
    结束
结束

这是一个可以与所有整数一起使用的普通阶乘函数,除了0之外

本地函数SF(FN)
    如果string.match(FN,“ ^-”)then
        FN * = -1
        本地N = math.sqrt2 * math.pi * FN)* math.pow((FN / math.exp1)),FN)
        N * = -1
        返回N
    其他
        本地N = math.sqrt2 * math.pi * FN)* math.pow((FN / math.exp1)),FN)
        返回N
    结束
结束

而这就是Stirling逼近法,正如我之前所说,它并不完全准确

这是我目前拥有的两个函数,我不知道此时该怎么做来解决它 有没有办法使用Gamma函数或者比我目前做法更简单的方式来做到这一点

请注意这是Roblox Lua!!!

任何帮助都将是省下很多时间谢谢,nici

点赞