Module:Factorial
Τεκμηρίωση module[δημιουργία]
Μπορείτε να συμβάλλετε στη δημιουργία σελίδας τεκμηρίωσης για αυτό το Scribunto module. Οι συντάκτες μπορούν να πειραματίζονται στο πρόχειρο (δημιουργία | αντίγραφο) και στις δοκιμαστικές σελίδες (δημιουργία) του module. Παρακαλούμε να προσθέτετε τις κατηγορίες στην υποσελίδα τεκμηρίωσης. Υποσελίδες αυτού του module. |
-- calculate factorial (integers, ln of integer factorial, as well as natural logarithm factorial)
-- Gts-tg@el wiki, Aug. 2017
local p = {}
function p.calc(frame)
local number = tonumber(frame.args[1])
local fType = frame.args[2]
local result
if number > 170 then
return '∞'
elseif number ~= 0 then
if fType == 'ln' then
result = math.log(factorial(number))
elseif fType == 'ln!' then
result = ln_factorial(number)
else
result = factorial(number)
end
end
return result
end
function factorial(number)
if number == 0 then
return 1
else
return number * factorial(number-1)
end
end
function ln_factorial(number)
if number == 0 then
return math.log(1)
else
return math.log(number) + factorial(number-1)
end
end
return p