【发布时间】:2021-05-11 01:23:19
【问题描述】:
你想达到什么目标? 我想做一个阶乘函数
有什么问题? 除非它们是整数,否则我找不到任何解决阶乘的方法
到目前为止,您尝试了哪些解决方案? 我看过 roblox devforum 和 youtube 和 google 和 discord,但我真的找不到任何方法让小数与阶乘一起正常工作
我唯一知道的是你可以使用伽马函数来解决十进制阶乘,但我正在寻找,但我不知道如何将它实现到 luau 中,所以我真的很挣扎 我什至使用了斯特林的近似值,但这并不是 100% 正确的,因为我需要一些东西来完全符合实际的答案
local function SolveFactorial(FN)
if string.match(FN, "^-") then
local T = 1
FN *= -1
for i = FN, 1, -1 do
T = T * i
end
T *= -1
return T
else
local T = 1
for i = FN, 1, -1 do
T = T * i
end
return T
end
end
这是一个正常的阶乘函数,适用于除 0 以外的所有整数
local function SF(FN)
if string.match(FN, "^-") then
FN *= -1
local N = math.sqrt(2*math.pi*FN)*math.pow((FN/math.exp(1)), FN)
N *= -1
return N
else
local N = math.sqrt(2*math.pi*FN)*math.pow((FN/math.exp(1)), FN)
return N
end
end
这是斯特林的近似值,正如我之前所说,它不是 100% 准确的
这是我目前拥有的两个功能,我不知道此时我应该做什么来修复它 有没有办法使用 gamma 函数,或者有比我在 atm 做的更简单的方法吗
注意这是roblox lua!!!
任何帮助都会真正节省大量时间,谢谢你,nici
【问题讨论】: